美文网首页JavaScript
js属性的设置和获取中.和[]的区别

js属性的设置和获取中.和[]的区别

作者: Aniugel | 来源:发表于2019-07-26 15:22 被阅读0次

    主要区别:

    1、中括号法可以用变量作为属性名,而点方法不可以

    var obj = {};
    obj.name = '张三';
    var myName = 'name';
    console.log(obj.myName);//undefined,访问不到对应的属性
    console.log(obj[myName]);//张三
    

    2、中括号法可以用数字作为属性名,而点语法不可以

    var obj = { 0: '零' };
        console.log(obj.0);//报错
        console.log(obj[0]);//零
     console.log(obj['0']);//零
    

    3、中括号法可以使用js的关键字和保留字作为属性名,而点语法不可以(尽量避免在变量或者属性中使用关键字或保留字);

    var obj = {
            '34': {
                '可能错误原因': '无',
                '错误代码': 'D000',
                '错误位置': '接收方成员行(MEMBER)',
                '错误描述': '无',
            },
            8: {
                number: 8
    
            },
            'name': {
                'liu': 'shenghua'
            }
        };
        // console.log(obj.34);//语法报错
        // console.log(obj.'34');//语法报错
        console.log(obj[34]);//正常获取到;
        console.log(obj['34']);//正常获取到; 数字可以是number和string
        console.log(obj[8]);//正常获取到;
        console.log(obj['8']);//正常获取到;
        console.log(obj['name']);//正常获取到;
        console.log(obj[name]);//undefined;[]里面必须是数字,变量,字符串,但是不能是纯粹的键值
        console.log(obj.name);//正常获取到;
    

    相关文章

      网友评论

        本文标题:js属性的设置和获取中.和[]的区别

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