首頁  >  文章  >  web前端  >  JavaScript中省略元素對陣列長度的影響

JavaScript中省略元素對陣列長度的影響

高洛峰
高洛峰原創
2016-12-08 16:22:161203瀏覽

在學習《JavaScript權威指南》第六版的第7.1節中透過數組直接量創建數組時,我們可以不給數組的某個元素賦值,它就會使undefined。雖然是undefined,但我們呼叫數組物件的length屬性時undefined也會導致length加1。有以下的四種情況:

var undef0 = [,,];
var undef1 = [1,,];
var undef2 = [,1,];
var undef3 = [,,1];
console.log(undef0.length);
console.log(undef1.length);
console.log(undef2.length);
console.log(undef3.length);

   

我們可以猜一下四個console.log輸出的長度各是多少,之前我一定會猜都是3。實際結果如下所示:

JavaScript中省略元素對陣列長度的影響

這是為什麼呢,答案就是:數組直接量的語法允許有可選的結尾的逗號,故[,,]、[1,,]、[,1,]這三種情況JS引擎會認為最後一個逗號是結尾的逗號,所以就認為只有兩個元素,而[,,1]這種情況人為的給最後一個逗號後面又添加了一個元素,所以最後一個逗號就不是結尾了,所以我們就能想到[,,1,]的長度還是3。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn