js是否保證在for-of循環過程中檢查數組的長度?

有時我喜歡使用這種模式來展平嵌套數據(數組、樹結構等)

const stuff = [1, [2, [3, 4]]];
let pile = [stuff];
for (let item of pile) {
    if (item instanceof Array) pile.push(...item);
    else console.log(item);
}

我突然想到我只是假設

for (let item of pile) { ...

語法糖果是什么

for (let i = 0; i < pile.length; i++) { const item = pile[i]; ...

雖然它也可能是一種語法糖果

for (let i = 0, length = pile.length; i < length; i++) { const item = pile[i]; ...

現在它按照我期望的方式工作,但是它是保證工作還是特定于實現?

? 最佳回答:

From MDN:

通常,在迭代過程中,最好不要添加、修改或刪除對象中的屬性,當前正在訪問的屬性除外。無法保證是否會訪問添加的屬性,是否會在修改之前或之后訪問已修改的屬性(當前屬性除外),或者是否會在刪除之前訪問已刪除的屬性。

這表明它是語法上的糖

for (let i = 0, length = pile.length; i < length; i++) { const item = pile[i]; ...

或者類似的東西。

主站蜘蛛池模板: 国产日韩AV免费无码一区二区三区| 国模精品一区二区三区视频| 国产中的精品一区的| 天码av无码一区二区三区四区| 久久无码人妻一区二区三区 | 精品国产aⅴ无码一区二区| 中文字幕一区二区免费| 日韩一区二区三区视频| 好爽毛片一区二区三区四无码三飞 | 亚洲午夜在线一区| 午夜天堂一区人妻| 国产视频一区二区在线播放| 精品一区二区三区高清免费观看 | 久久免费视频一区| 一区二区三区在线播放| 亚洲一区二区视频在线观看| 无码精品人妻一区二区三区AV| 国产成人av一区二区三区在线| 日韩色视频一区二区三区亚洲| 国产福利日本一区二区三区| 在线免费观看一区二区三区| 濑亚美莉在线视频一区| 波多野结衣一区二区免费视频| 国产福利在线观看一区二区 | 亚洲欧美一区二区三区日产| 亚洲美女一区二区三区| 国产成人精品久久一区二区三区| 亚洲高清一区二区三区| 国产福利日本一区二区三区| 无码精品人妻一区二区三区影院| 国产91一区二区在线播放不卡| 91麻豆精品国产自产在线观看一区| 国产一区二区视频在线观看| 无码人妻精品一区二区| 波多野结衣一区二区| 天天看高清无码一区二区三区 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 精品日产一区二区三区手机| 免费无码毛片一区二区APP| 亚洲国产一区在线观看| 欧洲精品免费一区二区三区|