对象的点查询和中括号查询

对象的查询

对象的查询提供了两种方式,分别是点查询和中括号查询
  • 通过(.),右侧必须是一个以属性名称命名的简单标识符。在ES3中,点运算符后的标识符不能是保留字,如果一个对象的属性名是保留字,则必须用方括号的形式访问,ES5中则可以直接在点后面使用保留字,而且不能查询以数字作为属性名的属性
  • 通过方括号([ ])运算符来获取属性的值。运算符左侧应该是一个表达式,返回一个对象。方括号内必须是一个计算结果为字符串的表达式,这个字符串就是属性名字

我们看下面这个问题,(想不起来在哪里看到的了,只能记个大概)

  var a = {}
  var b = {x:1}
  var c = {x:2}
      
    a[b] = b
    a[c] = c
    a[b]==a[c]  --> true

其实这题很简单,就是考察(.)和([ ])的区别,a[b] b没有带双引号,所以是个变量,指的是{x:1},而对象b转化为字符串为 => "[object Object]",所以:
a[b] = b => a{[object Object]:{x:1}}
a[c] = c => a{[object Object]:{x:2}}
a[b] = [object Object]
a[c] = [object Object]
a[b]和a[c] 查询的是同一个对象 => a{[object Object]:{x:2}}

中括号查询法,中括号中的表达式必须返回一个字符串或返回一个可以转化为字符串的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值