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 编辑过 |
关键字查询
相关文章
正在查询... |