JavaScript

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

2019-07-26  本文已影响0人  Aniugel

主要区别:

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);//正常获取到;
上一篇下一篇

猜你喜欢

热点阅读