for...in與for...of的區別
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
for...in與for...of都是循環語句,二者的區別是什么,分別對應什么使用場景呢? 目錄
遍歷范圍 for...in:可遍歷對象的可枚舉屬性(enumerable=true),包括自身的與繼承的;
輸出: 若將key2置為不可枚舉:
輸出: for...of:用于遍歷可迭代對象; 例1:數組
輸出: 例2:字符串
輸出: 遍歷的值 for...in:遍歷對象的鍵名(例子同上); for...of:遍歷對象的鍵值(訪問對象的Symbol.iterator屬性)(例子同上); 遍歷順序 for...in:遍歷順序是不確定的,會先遍歷對象的整數屬性,然后的遍歷順序依賴于對象屬性的插入順序; for...of:遍歷順序依賴于對象迭代器定義的順序,通常是元素插入的順序。 適用場景 for...in:適用于遍歷對象的屬性,若用于遍歷數組時需謹慎,因為也會遍歷到原型鏈上的可枚舉屬性(見此篇文章); for...of:適用于遍歷數組、字符串、Map等具有迭代器的可迭代對象,不可用于遍歷普通對象,因為普通對象沒有內置的迭代器; 遍歷普通對象時:
輸出: 查看普通對象的Symbol.iterator:
輸出: 可見,普通對象沒有內置迭代器。 查看字符串的Symbol.iterator:
輸出: 可見,字符串是具有迭代器的可迭代對象。 該文章在 2024/7/29 18:03:31 編輯過 |
關鍵字查詢
相關文章
正在查詢... |