You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript点表示法(Dot notation)与方括号表示法(Bracket Notation)差异问题咨询

JavaScript对象属性访问问题解答

首先明确JavaScript中对象两种属性访问方式的核心差异:

  • 点表示法:后面跟随的是固定的字面量属性名,不会解析变量,直接把后面的字符串作为属性名处理
  • 方括号表示法:括号内会先执行表达式求值,把求值得到的结果作为属性名处理

问题1解答

你写的me.selection = 40用的是点表示法,这行代码的作用是:给me对象新增一个名为selection的属性,赋值为40,和你之前定义的变量selection没有任何关联。
此时:

  • me[selection]中的方括号会先对selection变量求值,得到字符串'age',实际访问的是me.age,初始赋值是37,所以第一次打印输出37
  • me.selection用点表示法直接访问你新增的selection属性,值是40,所以第二次打印输出40

问题2解答

改成me[selection] = 40后,方括号先对selection变量求值得到'age',这行代码的作用变为:修改me对象原有age属性的值,从37更新为40。
此时你没有给me对象添加过名为selection的属性:

  • me[selection]还是等价于访问me.age,值已经被修改为40,所以第一次打印输出40
  • me.selection访问的是不存在的selection属性,JavaScript中访问对象不存在的属性默认返回undefined,所以第二次打印输出undefined

内容的提问来源于stack exchange,提问作者Nguyễn Minh Triết

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 17:51:03