《JavaScript 語言精粹》 學習筆記 —— 第六章 數組

來源:互聯網
上載者:User


第六章 數組

6.1、數組是一段線性分配的記憶體,它通過整數去計算位移並訪問其中的元素。
6.2、JavaScript 沒有數組資料結構。但提供了一種類數組特性的對象。它把數組的下標轉變成字串,用作其屬性。
6.3、JavaScript 中這種類“數組特性的對象”與一般對象的不同點在於:1、此對象繼承自Array.prototype,而一般對象繼承自Object.prototype;2、此對象擁有一個詭異的length屬性,而一般對象沒有。
6.4、JavaScript中,允許數組包含任意混合類型的值。例如:

var misc = ['string', 98.6, true, null, undefined, ['nested', 'array'], {object : true}, NaN, Infinity];misc.length // 10

6.5、每一個數組都有一個length屬性。和大多數其他語言不同,JavaScript數組的length沒有上界。
6.6、length 屬性的值是這個數組中最大整數屬性名稱加上1,所以它不一定等於數組裡屬性的個數。例如:

var myArray = [];myArray.length // 0myArray[1000000] = true;myArray.length // 1000001// myArray 只包含一個屬性

6.7、[] 尾碼下標運算子將它的運算式轉換成一個字串,如果該字運算式有toString方法,就是用該方法的值。這個字串被用作屬性名稱。如果這個字串看起來像一個大於等於這個數組當前的length且小於4 294 976 295的正整數,那麼這個數組的length就會被重新設定成新的下標加1。
6.8、可以手動設定length的值。設定更大無須給數組分配更多的空間,而把length設小,將導致下標大於等於新length的屬性被刪除。
6.9、由於JavaScript中的數組就是對象,所以delete運算子可以用來從數組中移除元素。不幸的是,這樣戶在數組中遺留一個空洞。這是因為排在被刪除元素之後的元素保留了他們最初的名字(下標)。
6.10、splice方法可以用來刪除數組中的一些元素。第一個參數是數組中的序號,第二個參數是要刪除元素的個數。此方法對大型數組來說效率不高。
6.11、typeof 運算子報告數組的類型是'Object',JavaScript數組與對象的區別是混亂的。
6.12、可以通過for in語句來遍曆一個數組所有的屬性,for in無法保證屬性的順序,而for語句能避免這樣的問題。
6.13、一個檢查對象是否為數組的函數:

var is_array = function (value) {return value &&typeof value === 'object' &&typeof value.length === 'number' &&typeof value.splice === 'function' &&!(value.propertyIsEnumerable('length'));};

總結:JavaScript中的數組並沒有數組結構,而是一種類數組的對象。該對象繼承自Array.prototype,它多了一個length屬性。

轉載請註明出處:http://blog.csdn.net/xxd851116/article/details/7671892

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.