美文网首页
for in与for of的区别

for in与for of的区别

作者: SailingBytes | 来源:发表于2020-10-27 12:38 被阅读0次

    1、对象遍历

    for in 会遍历对象的整个原型链,性能很好,推荐使用。

    for of 只遍历当前对象,不会遍历原型链。

    var obj = {a: 1, b: 2, c: 3};

    for (key  in obj) {

        console.log(key, obj[key])

    }

    var obj = {a: 1, b: 2, c: 3};

    obj[Symbol.iterator] = function(){

        var keys = Object.keys(this);

        var count = 0;

        return {

            next(){

                if(count<keys.length){

                    return {value: obj[keys[count++]],done:false};

                }else{

                    return {value:undefined,done:true};

                }

            }

        }

    };

    for (key  in obj) {   

        console.log(key, obj[key])

    }

    //  {a: 1}

    // {a: 2}

    //  {a:3}

    2、数组遍历

    for in 会返回数组中所有可枚举的属性(包括原型链上可枚举的属性),不推荐使用。

    var arr = [{a:1}, {a:2},{a:3}]

    for (key in arr) {

        console.log(arr[key])

    }

    //  {a: 1}

    // {a: 2}

    //  {a:3}

    for of 只返回数组的下标对应的属性值

    var arr = [{a:1}, {a:2},{a:3}]

    for (item of arr) {

        console.log(item)

    }

    // {a: 1}

    // {a: 2}

    // {a:3}

    相关文章

      网友评论

          本文标题:for in与for of的区别

          本文链接:https://www.haomeiwen.com/subject/ihatvktx.html