var obj = {
a?: "abc"
}
想要访问不是有效格式的密钥。
给我错误。
我正在访问它,就像这个obj.a。
这是一个错误。
const obj = { a?: 'aaa' }
console.log(obj.a)
答案 0 :(得分:1)
有效的属性名称
查看ECMAScript规范语法,我们可以看到一个属性 name可以是标识符名称(即标识符+保留名称) 单词),字符串文字或数字文字。
标识符名称是标识符的超集;任何有效标识符 任何保留字都是有效的标识符名称。
[...]
什么时候可以省略引号?
除非对象键是数字文字或有效的标识符名称, 你需要引用它以避免语法错误被抛出。在 换句话说,如果属性名称是a,则只能省略引号 数字文字或有效的标识符名称。当然,如果属性 name是一个字符串文字,它已经被定义引用了
来源:https://mathiasbynens.be/notes/javascript-properties
要解决您的具体问题,您可以使用quotes
:
var obj = {
'a?': "abc"
}
obj['aj']
答案 1 :(得分:0)
这可行(未经测试)
obj['a?'];
答案 2 :(得分:-2)
密钥应该是JavaScript中的简单字符串,所以如果你改变了?到了,它应该工作。