JS 基礎之數(shù)組與偽數(shù)組

標準庫之window.array.

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

Array的用法1

Array用法的內存圖
Array的用法2
不一致性
Array(3) // {length:3} 
Array(3,3) // [3,3] 
new Array(3) 跟不加 new 一樣的效果
new Array(3,3,) 跟不加 new 一樣的效果

注意:Arraynew與不加new效果都一樣。

結論:1.number,string,boolean等基本數(shù)據(jù)類型對應的構造函數(shù),不加new的話返回的還是基本數(shù)據(jù)類型,加new的話返回的是復雜類型即對象(object)。
2.objectarray,function)等對應的構造函數(shù),加new與不加new形式都一樣。

結論圖

標準庫之window.Function.

window.Function 全局對象(也是函數(shù))

Function('x','y','return x+y')
new Function('x','y','return x+y')
function的用法

注意:加不加 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ū)別內存圖

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

遍歷數(shù)組不同的方法

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

偽數(shù)組之arguments

數(shù)組的API

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

forEach的用法

用法注釋:在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} )
.sort示例

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

.join示例

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

.concat示例

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

.map示例

.map箭頭寫法

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

a.filter的基礎用法
用法之獲取偶數(shù)
用法之得到所有偶數(shù)的平方

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

.reduce示例

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


reduce內存圖演示
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容