關于JavaScript數組你所不知道的3件事__第1頁
關于JavaScript數組你所不知道的3件事__第2頁
關于JavaScript數組你所不知道的3件事__第3頁
關于JavaScript數組你所不知道的3件事__第4頁
關于JavaScript數組你所不知道的3件事__第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、關于JavaScript數組你所不知道的3件事_ 在編程語言當中,數組(Array)是一個特別常用的功能;它是一種特別的變量,可以用來同時儲存多個數值。然而,在JavaScript方面,數組的功能還有許多其他值得探究的地方。 在這篇文章中,我們將會商量JavaScript數組的三個并不那么常見的功能。 1. 給數組添加自定義屬性 在網上搜尋有關JavaScript數組的定義時,你會發(fā)覺幾乎全部人對于數組的定義都一樣:一種對象。 事實上,我們用JavaScript處理的全部東西,都可以視為是一種對象。JavaScript中有兩種數據類型,基本類型數對象類型,但是基本類型基本都是包括在對象類型之中

2、的。 數組、函數、Date在JavaScript中都是預定義的對象,它們內部都包含了方法、屬性和各自的標準化句法。 JavaScript數組有以下三種不同的屬性: 1) 數組的索引也是其屬性 2) 內置屬性 3) 你可以自己添加自定義屬性 前兩種屬性是大家比較熟知的,你可能每天都在用法,但是我還是想在這里簡潔的多說兩句,然后再來談談如何給數組添加自定義屬性。 將索引作為屬性 JavaScript數組可以用法方括號句法,例如var ary = “orange”,”apple”,”lychee”;。 數組元素的索引基本上也是一種屬性,而其屬性的名稱永久都是非負整數。 數組的索引元素對類似一個對象的

3、關鍵值對。索引是數組對象的獨特特性,與其他內置屬性不同,它們可以單獨通過方括號進行配置,例如 ary3 = “peach”;。 內置屬性 數組擁有內置屬性,例如array.length。這個長度屬性包含了一個整數值,用來表示數組的長度。 一般狀況下,內置屬性常常可以在數組等預先定義的JavaScript對象中找到。內置屬性與內置方法聯(lián)合在一起,它們可以對一般對象進行自定義,讓對象滿足不同的需求。 在訪問內置屬性的時候,你可以用法兩種句法:object.key或是object“key”。也就是說,在獵取數組長度的時候,你可以寫成ary“l(fā)ength”。 為數組對象創(chuàng)建自定義屬性 現(xiàn)在我們來談一談

4、如何為數組添加自定義屬性。數組是一種預定義對象,它在不同的索引中儲存了不同的種類的值。 通 常狀況下,我們沒有給數組添加自定義屬性的需要;也是出于這個緣由,我們在剛剛學習JavaScript的時候,沒有人告訴我們可以給數組添加屬性。事實 上,假如你想要向對待一般對象那樣,給數組添加關鍵值對,你也可以用法一般的對象來達到目的。但是,這并不是說完全沒有特別狀況,在某些狀況下,你可以利 用數組也是一種對象的事實,給它添加一個或多個自定義屬性。 例如,你可以給數組添加一個可以識別元素“類型(kind)”或是“類(class)”的自定義屬性。具體請參見下方實例: var ary = orange,app

5、le,lychee; ary.itemClass = fruits; console.log(ary + are + ary.itemClass); 請留意,你給數組所添加的自定義屬性都是可數的,也就是說,它可以被forin等循環(huán)所揀選。 2. 在數組元素中進行循環(huán) 你可能會說:“這個我早就知道了?!睕]錯,你已經知道如何對數組元素進行索引了。但是“在數組元素中進行循環(huán)”這樣的說法你可能會覺得有些抽象,由于我們真正循環(huán)的,是數組的索引。 由于數組索引都是又非負整數所構成的,因此通常狀況下,我們都會從0開頭,直到數組的全部長度,來對整數值進行迭代,然后用法那個迭代后的值來依據特定的索引來獵取數組元

6、素。 然而,自從ECMAScript6消失之后,我們可以不再管索引,挺直在數組值中進行循環(huán),而且這個操作可以用法forof循環(huán)來完成。 在數組中,forof循環(huán)可以依據索引的挨次對數組元素進行循環(huán),換句話說,它可以掌管索引的迭代,依據賜予的索引獵取一個已經存在的數組值。假如你只是想要在全部數組元素中進行循環(huán),并且用法它們,這個循環(huán)特別有用。 var ary = orange,apple,lychee; for (let item of ary) console.log(item); For comparison, with the regular for loop, we get the in

7、dices instead of the values as output. var ary = orange,apple,lychee; for (var item = 0; item ary.length; item+) console.log(item); 3. 元素的數量不等同于其長度 一般狀況下,當我們在談到數組長度的時候,我們會認為其長度要么是數組值的數量,要么是我們手動給數組設定的長度。但是事實上,數組的長度取決于其內部最大的已經存在的索引。 長度是一個特別敏捷的屬性。無論你是否曾實現(xiàn)調整了數組的長度,只要你不斷的給數組添加新的值,它的長度也會隨之增長。 var ary = ;

8、ary.length = 3; console.log(ary.length); ary5 = abcd; console.log(ary.length); 在上面的例子中,你可以看到我給數組的索引5只指定了一個值,之后長度變成了6?,F(xiàn)在,假如你覺得給index 5添加一個值,數組就會自動創(chuàng)建索引0-4,那么你的猜測就消失了錯誤。數組中并沒有應經存在的索引0-4。你可以用法in operator來查看。 var ary = ; ary.length = 3; console.log(ary.length); ary5 = abcd; console.log(ary.length); console.log(0 in ary); 上面的ary數組被我們成為稀疏數組(sparse array),這個數組的索引不會持續(xù)的被創(chuàng)建,而且索引之間有空氣。sparse數組的對立面為密集數組(dense array)。密集數組的索引會被持續(xù)的創(chuàng)建,其元素的數量等于其長度。 數組的長度屬性也可以用來縮短數字,確保數組中索引的最大數量永久小于數組本身,由于在默認狀況下,長度的數值永久會大于索引數量的最高值。 在下面的例子中,你可以看到,我利用削減ary數組長度的方式,社區(qū)了索引5中的元素。 var ary = ; ary.length = 3; console.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論