關(guān)于動(dòng)態(tài)數(shù)組,下面介紹的這個(gè)情況也很有意思:
var ar = [] ar["test"] = 4; ar[3] = 1; var len = ar.length; debugger;
讓我們來猜一猜,此時(shí)此刻這個(gè)數(shù)組的大小應(yīng)該是多少呢?
這段代碼建立了一個(gè)數(shù)組,其中包含數(shù)值索引和字符串索引,而且這可以正常工作,無論你使用ar[3]還是ar["test"]都可以得到預(yù)期的結(jié)果。下面的截圖展示了在Firebug中的調(diào)試結(jié)果:
請(qǐng)注意,數(shù)組的長(zhǎng)度是4,而此時(shí)數(shù)組中包含4個(gè)數(shù)值索引的元素和一個(gè)字符串索引的元素。也就是說,字符串索引的元素是不計(jì)入數(shù)組長(zhǎng)度的計(jì)算范圍的。而取而代之的,字符串索引器實(shí)際上作為數(shù)組對(duì)象的一個(gè)擴(kuò)展屬性而存在。Visual Studio JavaScript Debugger更加準(zhǔn)確的證明了這點(diǎn):
從這張截圖可以看出,test已經(jīng)成為array對(duì)象的一個(gè)屬性,和length屬性的性質(zhì)是一模一樣的。
本文沒有提到什么新內(nèi)容,但如果不了解JavaScript在處理數(shù)組上的細(xì)微差別,就會(huì)出現(xiàn)類似我之前所犯下的錯(cuò)誤。上面提到的內(nèi)容都是我在實(shí)際開發(fā)過程中曾經(jīng)遇到過的問題,借這個(gè)機(jī)會(huì)記錄下來,就當(dāng)是給自己的備忘錄了,如果恰好對(duì)你有幫助,將不勝榮幸。
本文鏈接:http://www.95time.cn/tech/web/2009/6442.asp
出處:七月佑安
責(zé)任編輯:bluehearts
上一頁 有趣的JavaScript數(shù)組 [1] 下一頁
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|