【问题标题】:How to inspect an object's property if the property name is an empty string?如果属性名称是空字符串,如何检查对象的属性?
【发布时间】:2015-08-15 11:06:25
【问题描述】:

Javascript 对象的属性可以用空字符串命名,例如:

foo = { 
    "" : "bar"
}

点符号似乎无法调用此属性。控制台输出:

foo.
>> "missing name after . operator"

您如何称呼“”属性?

【问题讨论】:

  • 与访问包含任何其他不合法 JavaScript 语法的属性的方式相同。
  • "对象属性名可以是任何有效的 JavaScript 字符串,也可以是任何可以转换为字符串的字符串,包括空字符串。" developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…
  • 我不确定该评论是否针对我;一个有效的 JavaScript string 不一定是有效的 JavaScript code,这就是点符号。

标签: javascript javascript-objects


【解决方案1】:

这可以用方括号表示法来完成。控制台输出:

foo[""]
>> "bar"

Documentation

【讨论】:

  • 有人知道点符号是否可行?
  • @meetalexjohnson——没有。点表示法只能与 valid identifiers 的属性名称一起使用(例如,可以用作变量名称的名称),并且 "" 不符合条件。
  • @meetalexjohnson 等等,你为什么要评论你自己的答案?
  • 这实际上不是唯一不能用点表示法表示的对象键类型。 foo["Now this is a story all about how my life got flipped turned upside down"] = bar; 有效,同样只能通过方括号表示法访问。
【解决方案2】:

使用空字符串作为括号语法的键:

foo[""]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    相关资源
    最近更新 更多