ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-05-07 11:51:18  阅读:145  来源: 互联网

标签:object 对象 Object 查询 中括号 字符串 属性


对象的查询

对象的查询提供了两种方式,分别是点查询和中括号查询
  • 通过(.),右侧必须是一个以属性名称命名的简单标识符。在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}}

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

标签:object,对象,Object,查询,中括号,字符串,属性
来源: https://www.cnblogs.com/baimeishaoxia/p/12841976.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有