对象引用的区别obj.a

obj.a和obj[a]和obj[‘a’]的区别

我们先来看下面的代码

            var a =100;
            var obj = {
                a:1,
                b:55
            }
            console.log(obj['a']);
            console.log(obj.a);
            console.log(obj[a]);

运行结果依次为1 1 undefined
第三行的输出如果全局变量没有定义的话,那么就是报错的
我们可以得出结论。obj.a相当于obj.[‘a’] 后者必须要加引号
第三行可能有人会问,为什么var a =100 它为撒不等于100呢,因为两个开辟的空间都不是同一个空间只是引用的是同一个栈内存里面的a。
简单的说就是第三行输出a的时候会先在obj的作用域里面去寻找a,但是这里没有定义的a,所以会到外面去找a,此时有一个定义的a,但是开的内存不一样所以为undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值