javaScript中for ... in 与for ... of

for…in

for…in是遍历数组、对象的key
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序
3.使用for in会遍历数组所有的可枚举属性,包括原型。
4.所以for in更适合遍历对象,不要使用for in遍历数组。

        let obj = {
            name: 'zhuyilong',
            age: 18,
        };
        for (let i in obj) {
            console.log(obj[i]); //zhuyilong 18
        }
for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。

for of遍历的只是数组内的元素,而不包括数组的原型属性。

for…of

for…of是遍历数组的value
1.for…of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为对象没有迭代器.与forEach()不同的是,它可以正确响应break、continue和return语句
2.for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法

        let arr = [1, 2, 3];
        for (let i in arr) {
            console.log(i) //0 1 2
        }
        for(let j of arr){
            console.log(j) //1 2 3
        }

猜你喜欢

转载自blog.csdn.net/weixin_45044349/article/details/121450773