在遍历中,for,for in,for of,forEach的区别。

无论在我们的平时学习练习中还是工作中,总是需要遍历一些我们想要的值。从{}中或是[]中。

let arr = [1,2,3,4,5];
arr.b='100';

for (let i = 0; i < arr.length; i++) {  //编程式  普通的遍历方式
    console.log(arr[i]);
}

for(let key in arr){  
//key会变成字符串类型,并且包括数组的私有属性,既可以遍历对象也可以遍历数组
    console.log(key);
    console.log(typeof key);
}

for (let i of arr){ //支持return 不能遍历对象,只能遍历数组,还可以遍历类数组
    console.log(i);
}


//forEach
arr.forEach(function (item, index) {//forEach不支持return 声明式编程 
//(不关心如何实现)
    console.log(item);
});

数组的索引是数字类型,而for in遍历出来的是索引是字符串类型。

for of是不能遍历对象的,如果遍历会提示错误obj is not iterable,意思是obj是不可迭代的。

当然我们非要遍历数组的话,我们可以使用Object.keys将对象的key作为一个新的数组。

let obj ={school:"zhufeng",age:8};

for (let val of Object.keys(obj)){
    console.log(obj[val]);
}

你可能感兴趣的:(js)