第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js關于稀疏數(shù)組的問題

js關于稀疏數(shù)組的問題

元芳怎么了 2019-03-07 18:15:21
看《javascript權威教程》的時候,關于第七章7.3稀疏數(shù)組,有兩點不是很明白。第一書中的原話是:‘注意,當在數(shù)組直接量中省略值時不會創(chuàng)建稀疏數(shù)組。省略的元素在數(shù)組中是存在的,其值為undefined。這和數(shù)組元素根本不存在是有一些微妙的區(qū)別的??梢杂胕n操作符來檢查區(qū)別?!又褪抢樱簐ar a1 = [,,,];//數(shù)組是[undefined,undefined,undefined]var a2 = new Array(3);0 in a1  //true:a1在索引0處有一個元素。0 in a2  //false可是我在編譯器里測試的時候,0 in a1輸出的是false。第二上面例子結束后,書中繼續(xù)說的問題徹底有點暈了。‘需要注意的是,當省略數(shù)組直接量中的值時(使用連續(xù)的逗號,比如[1,,3]),這時所得到的數(shù)組也是稀疏數(shù)組,省略掉的值時不存在的?!^續(xù)例子:var a1 = [,];            //此數(shù)組沒有元素,長度為1var a2 = [undefined];    //此數(shù)組包含一個值為undefined的元素。0 in a1             //false:a1在索引為0處沒有元素。感覺上下有點沖突的意思,并且第一個例子中我自己驗證還和書中的不一樣,到底哪里出了問題?求大神解答。附上圖片:
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

犀牛書里的確有很多錯誤,也有可能是因為ES標準以及執(zhí)行環(huán)境等不一樣導致的。

實踐得真知,建議手動執(zhí)行


var a1 = [,,]

var a2 = new Array(3)

var a3 = [1,,3]


console.log(0 in a1)

console.log(0 in a2)

console.log(0 in a3)


console.log(1 in a3)

得到結果:


false

false

true

false

所以只要是省略了該位置的元素,用 in 檢測都是 false,同時用 for in 也遍歷不到。


console.log("a1:")

for (var a in a1){

    console.log(a)

}


console.log("a2:")

for (var a in a2){

    console.log(a)

}


console.log("a3:")

for (var a in a3){

    console.log(a)

}

得到結果:


a1:

a2:

a3:

0

2


查看完整回答
反對 回復 2019-03-18
  • 1 回答
  • 0 關注
  • 473 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號