for in
迭代一个对象的所有可枚举字符串属性(除 Symbol以外),包括继承的可枚举属性。
遍历拿到的是索引
Object.prototype.a = function(){
console.log('aaa');
}
Array.prototype.b = function(){
console.log('bbb');
}
const arr = [1,2,3];
// 遍历拿到的是索引
for(const key in arr){
console.log(key); // 1,2,3,a,b
}
for of
执行一个循环,该循环处理来自可迭代对象的值序列。可迭代对象包括内置对象的实例,例如 Array
、String
、TypedArray
、Map
、Set
、NodeList
(以及其他 DOM 集合),还包括 arguments
对象、由生成器函数生成的生成器,以及用户定义的可迭代对象。
遍历拿到的是值
const arr = ['11','22','33'];
for(const value of arr){
console.log(value); // 11,22,33
}