JS中的括号和点号
admin
2024-02-10 22:22:34
0

使用中括号运算符[]可以存取数组元素值,使用点运算符.可以存取对象属性值。其语法格式如下:

  1. a.b //点运算符的用法
  2. c[b] //中括号运算符的用法

操作数 a 表示对象,操作数 b 表示属性名。如果属性值是函数,应增加小括号,实现方法调用操作。注意,操作数 b 是不能使用字符串或字符串表达式的。

操作数 c 可以是数组,也可以是对象。具体说明如下:

  • 如果左侧操作数是数组,则中括号包含的操作数应是一个值为非负整数的表达式,作为下标值,用来指定元素在数组中的位置。
  • 如果左侧操作数是对象,则中括号包含的操作数应是一个值为字符串的表达式,映射对象的属性名。

中括号和点号应该属于运算符范畴,但是新版本 JavaScript 把它们视为语言核心命令来使用。

示例1

使用中括号运算符[]不仅可以存取数组元素的值,也可以存取对象属性值。
1) 存取数组元素的值。

  1. var a = [1,"x",true,{}]; //定义数组a
  2. console.log(a[1]); //读取第二个元素的值,返回字符串"x"
  3. a[3] = false; //为第4个元素写入false值
  4. console.log(a[3]); //第四个元素原来的值被覆盖,返回false

2) 存取对象属性的值。

  1. var a = { //定义对象a
  2. x : 1, //定义对象属性x
  3. y : function() { //定义对象方法y
  4. return 2; //返回值
  5. }
  6. };
  7. console.log(a["y"] ()); //调用方法y,返回2
  8. a["x"] = 3; //重置属性x的值
  9. console.log(a["x"]); //读取属性x的值,返回3

示例2

使用点运算符.可以存取对象属性的值,它比中括号灵活、方便,因为点运算符右侧可以直接指定属性名称,而不是属性名称的字符串。

  1. var a = {x : 1}; //定义对象a
  2. console.log(a.x); //返回1。读取对象属性a的值
  3. a.x = 2; //重写对象属性a的值
  4. console.log(a.x); //返回2。再次读取对象属性a的值

对于中括号运算符,可以通过变量或字符串表达式来传递特定值。

  1. var b = "x"; //把属性x的标识符名作为字符串存储在变量b中
  2. var a = {x : 1}; //定义对象a
  3. console.log(a[b]); //返回1。通过变量间接获取对象a的属性x的值
  4. console.log(a.b); //返回undefined。点运算符无法识别变量引用

示例3

下面两种方法都可以读取数组 a 的第二个元素值。虽然说 a[“1”] 中参数是一个字符串,但是中括号运算符能够把它转换为数字。

  1. var a = ["x",true,{}]; //定义数组
  2. console.log(a[1]); //返回true
  3. console.log(a["1"]); //返回true

如果中括号运算符的第二个操作数为对象,会调用 toString() 方法把对象转换为字符串表示。如果是布尔值 true 和 false,将被转换为字符串 “true” 和 “false”,而不是 1 和 0。

  1. var a = { //定义对象
  2. "true" : 1, //定义属性“true”
  3. "false" : 0 //定义属性“false”
  4. }
  5. console.log(a[true]); //返回1。把布尔值true转换为字符串“true”
  6. console.log(a[false]); //返回0。把布尔值false转换为字符串“false”

示例4

在不确定对象属性时,使用中括号运算符来遍历对象属性会很方便,但如果使用点运算符则容易引发异常。下面代码使用中括号运算符变量客户端 window 对象的所有属性以及属性值。

  1. for(o in window){
  2. document.write("window." + o + "=" + window[o] + "
    ");
  3. }

相关内容

热门资讯

特朗普的“中选经济强心针”:超... 美国消费者即将迎来一场规模空前的“现金雨”。 据追风交易台,根据摩根士丹利1月23日发布的最新研报,...
2025年IPO数据报告-投中... 2025 年中国企业 IPO 市场呈现止跌回升态势,全球范围内 294 家中国企业成功上市,IPO ...
山西银行锚定未来战略定位和经营... 文 | 中国金融网(CFN) 黄瑾 2026年1月下旬,山西银行密集召开2026年度工作会议、202...
思林杰并购告吹背后:对价砍了又... 深圳商报·读创客户端记者 梁佳彤 1月25日,思林杰(688115)发布公告称,公司分别召开第二届...
原创 昨... 特朗普批评加拿大被中国“吞食”,称关税将征收100%并嘲讽其“州长”,暴露霸权主义虚伪。 昨晚,特...
威尔鑫点金·׀ 美元因烽火戏诸... 美元因烽火戏诸侯遭遇重锤 金银再续强势逼空 2026年01月25日 威尔鑫投资咨询研究中心 (文...
钻石的眼泪,白银的沉默:当克拉... 钻戒的浪漫,是一场昂贵的误会? 那颗闪闪发光的石头,承载了多少海誓山盟。你以为买下的是一份永恒,一份...
贾国龙最新发声!“将回归一线,... 据媒体报道,西贝餐饮集团创始人贾国龙近日接受专访时表示,将回归一线、聚焦主业,不再打造个人IP。 贾...
阿里“平头哥”上市猜想引关注背... 上海浦东新区张江人工智能产业园内,一座灰橙交融的建筑静静矗立,平头哥半导体有限公司(以下简称平头哥)...
利好!千亿龙头完成金矿收购! 本报记者 肖艳青 1月25日晚间,洛阳栾川钼业集团股份有限公司(以下简称“洛阳钼业”)公告称,公司于...
原创 短... 刘阿姨大约从一年前开始断断续续出现腹痛、便秘症状,开始她没有当回事,觉得是胃肠道功能不好导致的,饮食...
旷达科技集团股份有限公司 第七... 证券代码:002516 证券简称:旷达科技 公告编号:2026-009 旷达科技集团股份有限公司 第...
原创 申... 离婚十三年,申通快递实控人被前夫追索分割财产。 作者 | 于婞 编辑丨高岩 来源 | 野马财经 19...
2025年业绩预亏!华神科技推... 继2024年净利出现亏损后,2025年,华神科技(000790)归属净利润预计同样出现亏损。在业绩连...
南宁吴圩国际机场将设立口岸进境... 近日,财政部、商务部、文化和旅游部、海关总署、税务总局联合印发《关于口岸进境免税店有关事宜的通知》(...
零食连锁商鸣鸣很忙港股IPO招... 观点网讯:1月25日,内地连锁零食商“零食很忙”及“赵一鸣零食”母企鸣鸣很忙(01768.HK)IP...
大普微注册生效:创业板包容性上... 创业板自设立以来,始终以“为高成长性的创新型、创业型企业提供专门的融资平台和发展舞台”为核心使命,其...
公司互动丨这些公司披露在电池等... 1月23日,多家上市公司通过互动平台、披露投资者关系活动记录表等渠道披露公司在电池等方面最新情况: ...
颠覆想象!阿里通义千问绝不仅是... 通义千问这套由阿里巴巴推出的AI大模型系列,已然成了全球领先的开源模型,它可不是单纯的聊天工具,而是...