5.2 Array 類型

數組 length 屬性的特色html

數組的 length 屬性頗有特色 — 它不是隻讀的。所以經過設置這個屬性,能夠從數組的末尾移除或向數組添加新項es6

 

檢測數組數組

JavaScript爲啥不用 instanceof 檢測數組,這裏有個示例坑框架

對於一個網頁,或者一個全局做用域而言,使用 instanceof 操做符就能獲得滿意的結果:函數

if( value instanceof Array ) {spa

  //  對數組執行某些操做3d

}htm

instanceof 操做符的問題在於,它假定單一的全局執行環境。若是網頁中包含多個框架,那實際上就存在兩個以上不一樣的全局執行環境,從而存在兩個以上不一樣版本的 Array 構造函數。若是你從一個框架向另外一個框架傳入一個數組,那麼傳入的數組與在第二個框架中原生建立的數組分別具備各自不一樣的構造函數。對象

爲了解決這個問題,es6新增了 Array.isArray() 方法,這個方法的目的是最終肯定某個值究竟是不是數組,而無論它是在哪一個全局執行環境中建立的。blog

 

數組的 sort 方法

爲了實現排序,sort() 方法會調用每一個數組項的 toString() 轉型方法,而後比較獲得的字符串,以肯定如何排序。即便數組中的每一項都是數值,sort() 方法比較的也是字符串。

所以 sort() 方法能夠接收一個比較函數做爲參數,以便咱們指定哪一個值位於哪一個值的前面。比較函數接收兩個參數,若是第一個參數應該位於第二個以前則返回一個負數,若是兩個參數相等則返回0,若是第一個參數應該位於第二個以後則返回一個正數。

對於數值類型或者其 valueOf() 方法會返回數值類型的對象類型,可使用一個更簡單的比較函數。因爲比較函數是經過返回一個小於0、等於0或大於0的值來影響排序結果,所以減法操做就能夠適當地處理全部這些狀況。

 

 

 

數組的 concat() 方法

一、當不給 concat() 方法傳遞參數的狀況下,它只是複製當前數組並返回副本

二、若是傳遞給 concat() 方法的是一或多個數組,則該方法會將這些數組中的每一項都添加到結果數組中

三、若是傳遞的值不是數組,這些值就會被簡單地

相關文章
相關標籤/搜索