使用特殊符号访问Javascript对象密钥

时间:2017-12-05 09:20:53

标签: javascript reactjs

var obj = {
a?: "abc"
}

想要访问不是有效格式的密钥。

给我错误。

我正在访问它,就像这个obj.a。

这是一个错误。

const obj = { a?: 'aaa' }
console.log(obj.a)

3 个答案:

答案 0 :(得分:1)

  

有效的属性名称

     

查看ECMAScript规范语法,我们可以看到一个属性   name可以是标识符名称(即标识符+保留名称)   单词),字符串文字或数字文字。

     

标识符名称是标识符的超集;任何有效标识符   任何保留字都是有效的标识符名称。

     

[...]

     

什么时候可以省略引号?

     

除非对象键是数字文字或有效的标识符名称,   你需要引用它以避免语法错误被抛出。在   换句话说,如果属性名称是a,则只能省略引号   数字文字或有效的标识符名称。当然,如果属性   name是一个字符串文字,它已经被定义引用了

来源:https://mathiasbynens.be/notes/javascript-properties

要解决您的具体问题,您可以使用quotes

var obj = {
'a?': "abc"
}

obj['aj']

完整的答案可以在 https://stackoverflow.com/a/9571440/1211174

答案 1 :(得分:0)

这可行(未经测试)

obj['a?'];

答案 2 :(得分:-2)

密钥应该是JavaScript中的简单字符串,所以如果你改变了?到了,它应该工作。