js对象取值

  var obj ={

        name:'nnn',

        age:22,

        job:'worker'

    };

  

    var arr=[

        'name',

        'age',

        'job'

    ];


    for (var i=0 ;i<arr.length;i++){

        document.writeln(arr[i]+':'+obj[arr[i]]);

    };//有值

     for (var i=0 ;i<arr.length;i++){

        document.writeln(arr[i]+':'+obj.arr[i]);

    };//没值,不报错

    

这两种有什么不同,出现上面的情况的原因是什么,请大神帮我解惑

慕斯709654
浏览 462回答 1
1回答

慕的地8271018

你确定不报错? 看看控制台信息obj.arr[i] 这个调用是错的obj.arr 不存在, 等于 undefinedundefined[i] 肯定会出错首先 obj 和 arr 都可以用 [] 的方式来取值:这个例子的两种做法不同点在于:obj[arr[i]] 是先取 arr[i] 再赋值给 obj[]:arr[i]==>&nbsp;'name'&nbsp;==>&nbsp;obj['name']&nbsp;==>&nbsp;取值成功obj.arr.[i] 是先取 obj.arr, 再通过obj.arr取[i]:obj.arr==>&nbsp;undefined&nbsp;==>&nbsp;undefined[i]&nbsp;==>&nbsp;报错嵌套的由内而外 链式由左往右
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript