JS數組也是一種對象。數組
咱們用JavaScript處理的全部東西,均可以視爲是一種對象。app
JavaScript中有兩種數據類型,基本類型數對象類型,可是基本類型基本都是包括在對象類型之中的。函數
數組、函數、Date在JavaScript中都是預約義的對象,它們內部都包含了方法、屬性和各自的標準化句法。學習
JavaScript數組有如下三種不一樣的屬性:
1 數組的索引也是其屬性
2 內置屬性
3 你能夠本身添加自定義屬性
前兩種屬性是你們比較熟知的,你可能天天都在使用,可是我仍是想在這裏簡單的多說兩句,而後再來談談如何給數組添加自定義屬性。ui
將索引做爲屬性
JavaScript數組可使用方括號句法,例如var ary = [「orange」,"apple","lychee"];。
數組元素的索引基本上也是一種屬性,而其屬性的名稱永遠都是非負整數。
數組的索引元素對相似一個對象的關鍵值對。索引是數組對象的獨特特性,與其餘內置屬性不一樣,它們能夠單獨經過方括號進行配置,例如 ary[3] = 「peach」;。spa
內置屬性
數組擁有內置屬性,例如array.length。這個長度屬性包含了一個整數值,用來表示數組的長度。
通常狀況下,內置屬性常常能夠在數組等預先定義的JavaScript對象中找到。內置屬性與內置方法聯合在一塊兒,它們能夠對普通對象進行自定義,讓對象知足不一樣的需求。
在訪問內置屬性的時候,你可使用兩種句法:object.key或是object[「key」]。也就是說,在獲取數組長度的時候,你能夠寫成ary[「length"]。code
爲數組對象建立自定義屬性對象
JS數組的自定義屬性可枚舉,可是不算入數組的lengthblog
它能夠被for……in等循環所揀選索引
數組是一種預約義對象,它在不一樣的索引中儲存了不一樣的種類的值。
一般狀況下,咱們沒有給數組添加自定義屬性的須要;也是出於這個緣由,咱們在剛剛學習JavaScript的時候,沒有人告訴咱們能夠給數組添加屬性。事實上,若是你想要向對待通常對象那樣,給數組添加關鍵值對,你也可使用通常的對象來達到目的。可是,這並非說徹底沒有特殊狀況,在某些狀況下,你能夠利用數組也是一種對象的事實,給它添加一個或多個自定義屬性。
1 var ary = ["orange","apple","lychee"]; 2 ary.itemClass = "fruits"; 3 console.log(ary); // ["orange", "apple", "lychee", itemClass: "fruits"] 4 5 for(var i = 0 ;i<ary.length;i++){ 6 console.log(ary[i]); 7 } 8 //依次打印 orange apple lychee 9 10 11 for(var i in ary){ 12 console.log(ary[i]); 13 } 14 //依次打印 orange apple lychee fruits