我有以下代码:
var factory = {
query: function (selectedSubject) {
..
}
}
在Javascript中它与:
相同 var factory = {
'query': function (selectedSubject) {
..
}
}
我已经看过两者都使用了,我不确定是否有任何区别。
答案 0 :(得分:3)
The standard要求属性名称为以下之一:
PropertyName :
IdentifierName
StringLiteral
NumericLiteral
即所有这些都是有效的:
obj = {
"query": ....
'query': ....
query: ....
12e45: ....
}
请注意,与流行的观点相反,标准不要求名称是有效标识符,只需要“标识符名称”。这实际上意味着您可以使用JS保留字作为属性名称:
x = {
if: 100,
function: 200,
}
console.log(x.if + x.function) // 300
并不是说它在日常编程中非常有用,只是一个值得了解的有趣事实。
答案 1 :(得分:2)
您可以同时使用两者,但如果有空格,则无法使用第一个选项。这就是为什么有第二种选择。
答案 2 :(得分:-1)
有效JSON要求“”包围匿名对象的属性名称,但如果属性名称不是保留字或不包含某些特殊字符,则可以省略它们。通常使用“”更安全。