標準庫之window.array.
-window.Array 全局對象(也是函數(shù))
(1) 創(chuàng)建數(shù)組




Array(3) // {length:3}
Array(3,3) // [3,3]
new Array(3) 跟不加 new 一樣的效果
new Array(3,3,) 跟不加 new 一樣的效果
注意:Array加new與不加new效果都一樣。
結論:1.number,string,boolean等基本數(shù)據(jù)類型對應的構造函數(shù),不加new的話返回的還是基本數(shù)據(jù)類型,加new的話返回的是復雜類型即對象(object)。
2.object(array,function)等對應的構造函數(shù),加new與不加new形式都一樣。

標準庫之window.Function.
window.Function 全局對象(也是函數(shù))
Function('x','y','return x+y')
new Function('x','y','return x+y')

注意:加不加 new結果一樣
函數(shù)(function)的聲明方法總結
1.具名函數(shù)
function f(x,y){
return x + y
}
2.匿名函數(shù)
var f1
f1= function f2(x,y){
return x+y
}
console.log(f2) // undefined
3.具名函數(shù) + var
var f1
f1= function f2(x,y){
return x+y
}
console.log(f2) // undefined
4.window.Function + var
var f
f = new Function('x','y','return x+y')
注意:function 關鍵字 用來聲明一個函數(shù)。
Function 全局對象
一般不推薦用第四種。
數(shù)組
人類理解:數(shù)組就是數(shù)據(jù)的有序集合
JS理解:數(shù)據(jù)就是原型鏈中有 Array.prototype 的對象

注釋:數(shù)組和對象的區(qū)別是:
--proto--是否指向數(shù)組的共用的屬性Arrary.prototype.數(shù)組和對象都是對象,只不過原型鏈不同。

偽數(shù)組:1.有 0,1,2,3,4,5...n,length 這些key 的對象。
2.原型鏈中沒有 Array.prototype。
目前知道的偽數(shù)組:arguments 對象
document.querySelectAll('div')返回的對象

數(shù)組的API
1.Array.prototype.forEach
使用forEach時需要接受一個函數(shù),這個函數(shù)必須接受兩個函數(shù)。

用法注釋:在a這個函數(shù)上遍歷每一項,在每一項上調用整個函數(shù)x,在調用函數(shù)x的時候傳一個
value,key。2.
Array.prototype.sort對數(shù)組的元素進行排序,并返回數(shù)組。
.sort(function(x,y){return x-y} )
.sort(function(x,y){return y-x} )

3.Array.prototype.join
將一個數(shù)組的所有元素連接成一個字符串并返回這個字符串。

4.
Array.prototype.concat用于合并兩個或多個數(shù)組,并且不會更改現(xiàn)有數(shù)組,而是返回一個新數(shù)組。

5.
Array.prototype.map遍歷數(shù)組以后,并將函數(shù)操作的結果收集起來。


6.
Array.prototype.filter創(chuàng)建一個新數(shù)組, 其包含通過所提供函數(shù)實現(xiàn)的測試的所有元素。



7.Array.prototype.reduce
遍歷一個數(shù)組,每次取個結果,并放到下一項身上。

注意:最后一段是箭頭寫法,比較美觀。
