javaScript之for...in和for...of的用法与区别

for…in

  • for … in 如果是对象,则循环的是键;如果是数组,则循环的是下标。
let arr = ["a","b","c","d"];
let obj = {
    a:1,
    b:2,
    c:3,
}
for(let attr in arr){
    console.log(attr);    //0,1,2,3
}
for(let objVal in obj){
    console.log(objVal);  // a,b,c
}

for…of

  • 如果是对象,不可循环(没有Symbol.iterator属性);如果是数组,则循环的是值。
let arr = ["a","b","c","d"];
let obj = {
    a:1,
    b:2,
    c:3,
}
for(let val of arr){
     console.log(val);   //a,b,c,d
}
 for(let val of obj){
    console.log(val);  //Uncaught TypeError: obj is not iterable
}

点击查看Symbol.iterator属性,及for…of循环对象


版权声明:本文为weixin_44178305原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。