JavaScript中undefined作为对象属性键,其行为如何解析?

2026-05-03 06:490阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计740个文字,预计阅读时间需要3分钟。

JavaScript中undefined作为对象属性键,其行为如何解析?

在+

? 行为本质:undefined 会被强制类型转换为字符串

根据 ECMAScript 规范,当使用方括号语法 obj[key] 访问属性时,若 key 不是 Symbol,则会通过 ToString() 抽象操作将其转为字符串。而 ToString(undefined) 的结果恒为 "undefined"。

这意味着以下三者完全等价:

obj[undefined] obj["undefined"] obj.undefined

⚠️ 因此,只要对象上存在名为 "undefined" 的自有或继承属性,obj[undefined] 就会返回该属性值,而非 undefined

阅读全文

本文共计740个文字,预计阅读时间需要3分钟。

JavaScript中undefined作为对象属性键,其行为如何解析?

在+

? 行为本质:undefined 会被强制类型转换为字符串

根据 ECMAScript 规范,当使用方括号语法 obj[key] 访问属性时,若 key 不是 Symbol,则会通过 ToString() 抽象操作将其转为字符串。而 ToString(undefined) 的结果恒为 "undefined"。

这意味着以下三者完全等价:

obj[undefined] obj["undefined"] obj.undefined

⚠️ 因此,只要对象上存在名为 "undefined" 的自有或继承属性,obj[undefined] 就会返回该属性值,而非 undefined

阅读全文