`function isPrime(number){ if(number === 1){ return false; } var result = true; for(var i = 2;i < number - 1;i++){ if(number % i === 0){ result = false; break; } } return true; } console.log(isPrime(3));`
`function getDay(year,month,date){ var rules = [ 31, isPrime(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; var result = 0; for(var i = 0;i <month -1;i++){ result = result + rules[i]; } result +=date; return result; } function isPrime(year){ if((year % 4===0 && year % 100 !==0) || year % 400 ===0){ return true; } return false; } console.log(getDay(2016,3,10))`
`function sumOfjiecheng(n){ var result = 0; for(var i =1;i<=n;i++){ var number = 1; for(var j =1;j<=i;j++){ number = number * j; } result = result + number; } return result; }`
若是函數中沒有return語句,系統會自動補上return undefinedweb
在函數內部定義的變量,只能在函數內部使用數組
`functiong fn(){ console.log('hello'); //return undefined; }`
這裏的return undefined即是系統自動補上的。函數
在js中,只有函數纔會產生做用域,而if,while,for都不會產生做用域spa
提高函數:對於使用函數申明方式定義的函數,它的定義時機會被提到當前做用域的開頭。code
做用域鏈:當在同級中沒有找所定義的變量,便會一級一級地向上找定義的變量。對象
`var a =10; function fn(b){ a=30; function fn1(){ var a = 40; console.log(a); } function fn2(){ a = 50; console.log(a); } fn1(); fn2(); console.log(a); } fn(a); console.log(a);`
所得的結果即是:40,50,50,50排序
在申明變量的時候,會把當前變量的時機放到做用域的開頭,只有變量的申明纔有提高,變量的賦值沒有提高。繼承
`console.log(a); var a = 10;`
所得的結果即是undifined;其實它的順序即是:ip
`var a; console.log(a);` a = 10;
用花括號括起來,是無序集合作用域
`var obj={ name:'Bob', gender:'male' }; console.log(obj.name); 或者用: console.log(obj['name']);`
取對象屬性的兩種方式:點和方括號(推薦優先使用點這種方式)
一、點會把點後面的名稱直接做爲屬性名,而方括號會把方括號裏面的返回值做爲屬性名。
二、對於一些特殊的屬性名,好比使用數字開頭,或者屬性名中間出現了一些符號(+等,就是在命名規範中不合法的一些),這些屬性名只能經過方括號來取。
`var arr=[1,2,3]`
這種方式稱爲自變量數組。
對象和數組的區別例:
`var obj = { 0 : 1, 1 : 2, 2 : 3, } console.log(obj) console.log(obj['length'])`
這個是對象,不會打印出數組的項數,屬性的變化須要定義了纔會有
array對象方法 構建數組如下三種方式: var arr = [1,2,3]這個是數組字面量,若是沒有特殊狀況,就是用這個方式,比如下三種方法更簡便
一:condytuvyot是處理繼承的
`var arr = new Array() 賦值的時候不夠直觀 arr[0] =1; arr[1] =2; arr[2] =3;`
二: var arr = new Array(5)
不存儲數據的話,length爲5,若是arr[5]的話,打印出來的長度爲6
三:var arr = new Array(1,2,3)
一、concat() 鏈接兩個或更多的數組,並返回結果。
二、join() 把數組的全部元素放入一個字符串。元素經過指定的分隔符進行分隔。
數組join的使用方法
`var arr = [1,2,3,'hello']; var result = arr.join ();數組每一項都拼接在一塊兒 console.log(arr); console.log(result);`
三、pop() 刪除並返回數組的最後一個元素
數組pop使用方法:把數組的最後一項刪掉,會修改數組自己,將刪除的一項做爲返回值的方法 要是取最後一項的話,用[]取值就能夠
`var arr = [1,2,3,'hello']; var result = arr.pop (); console.log(arr); console.log(result);`
四、push() 向數組的末尾添加一個或更多元素,並返回新的長度。
數組pus使用方法:給數組添加一個或多項新項,第一項後的項數能夠寫也能夠不寫,會修改數組自己 而且返回新長度,添加新項是添加到末尾的;若是是添加數組的話,把數組做爲一項(保留數組),添加到末尾中去,例2
`var arr = [1,2,3,'hello']; var result = arr.pus ('world'); console.log(arr); console.log(result);`
例2
var arr = [1,2,3,'hello']; var arr2 = [nh,nk] var result = arr.pus ('arr2'); console.log(arr); console.log(result);
五、reverse() 顛倒數組中元素的順序。
reverse方法:修改元素組,把數組的從左到右的排序,改爲從右到左
六、shift() 刪除並返回數組的第一個元素
shift方法:刪除數組第一項並將刪除的一項做爲返回值的方法
七、slice() 從某個已有的數組返回選定的元素(負數的寫法只能在slice中使用。)
slice方法,須要填寫開始的角標,和結束的角標(結束的角標5不包括在內,不會被選取到)角標能夠爲負數,只有slice這裏可使用負數,表明從右往左數的對象 截取數組的片斷 不會修改數組自己,截取出來的長度比實際的少1 var arr = [1,2,3,'hello',4,5,'js'];
var result = arr.slice ('3,5'); var result = arr.slice ('3,-2'); console.log(arr); console.log(result);
八、sort() 對數組的元素進行排序(能夠傳入一個參數,規定它的一個排序規則,可這個參數必定是一個函數),若是不定義比較規則,它是按照首字符的大小進行排序的。
`var arr=[23,1,300,7,4] //定義排序規則的函數 function rules(a,b){ if(a<b){ //若是要讓a出如今b的前面,返回小於0的數 return -1; }else{ //若是讓b出如今a的前面,返回大於0的數 return 1; } } arr.sort(rule); console.log(arr);`
也能夠將代碼簡化爲:
`function rules(a,b){ return a-b;(從小到大排列) //return b-a;(從大到小排列) } arr.sort(rule); console.log(arr);`
若是讓它設爲匿名函數的方法:讓它從小到大排序:
`arr.sort(function(a,b){return a-b})`
九、splice() 刪除元素,並向數組添加新元素。
splice方法:做用一。刪除數組中間的某一部分 須要填寫兩個參數,一個數刪除的角標,第二個參數寫須要刪除幾項 var arr = [23,1,300,7,4] var result = arr.splice(2,1) console.log(arr); console.log(result); 這個是刪除的項的返回值 做用二。替換的特性,替換數組中的某一部分 var arr = [23,1,300,7,4] var result = arr.splice(2,1,400,500) console.log(arr); console.log(result) 做用三。在數組中某個位置插入新項 var arr = [23,1,300,7,4] var result = arr.splice(3,0,100,200) 3表示在角標爲3的位置插入,0表示不刪除數組中的項 console.log(arr); console.log(result)
十、toSource() 返回該對象的源代碼。
十一、toString() 把數組轉換爲字符串,並返回結果。
十二、toLocaleString() 把數組轉換爲本地數組,並返回結果。
1三、unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。
1四、valueOf() 返回數組對象的原始值