反正 ES 規范原文里沒有這句話:https://262.ecma-internationa... 中文網絡里我能找到的最早的出處是 2012-09-30 來自這篇博客:https://www.cnblogs.com/libin... 不過看起來機翻味很濃,感覺應該是有一篇英文原文的才對。 英文網絡里倒也能搜到一些博客或文章有這種說法,但發布時間都比上面這篇要晚。源頭就這么斷了。 所以鬼知道是什么意思。 同樣地,有一些文章會將此描述為“精準的迭代語句”(precise iterative statement )。 這個就比較好理解了,就是指 for-in 循環不需要你手動控制次數、它一定會把目標對象的可枚舉屬性遍歷完的,也不會有越界的風險。 反之 for / while / do-while 等則都需要你手動控制次數才可以。而如果你在循環內部里嘗試改變了被循環對象,很可能造成越界或部分丟失的結果。
反正 ES 規范原文里沒有這句話:https://262.ecma-internationa...
中文網絡里我能找到的最早的出處是 2012-09-30 來自這篇博客:https://www.cnblogs.com/libin... 不過看起來機翻味很濃,感覺應該是有一篇英文原文的才對。
英文網絡里倒也能搜到一些博客或文章有這種說法,但發布時間都比上面這篇要晚。源頭就這么斷了。
所以鬼知道是什么意思。
同樣地,有一些文章會將此描述為“精準的迭代語句”(precise iterative statement )。
這個就比較好理解了,就是指 for-in 循環不需要你手動控制次數、它一定會把目標對象的可枚舉屬性遍歷完的,也不會有越界的風險。
反之 for / while / do-while 等則都需要你手動控制次數才可以。而如果你在循環內部里嘗試改變了被循環對象,很可能造成越界或部分丟失的結果。