可能重复:
What is the difference between object keys with quotes and without quotes?
a和b之间有什么区别?
var a = {foo : "bar"};
var b = {"foo" : "bar"};
答案 0 :(得分:6)
两者都是有效的JavaScript对象文字,并使用名为foo
的属性评估到不同的对象,a.foo == b.foo
为真。
由于您标记了此json,因此第一个语句是无效的JSON,因为密钥必须是字符串(除var a
声明之外)。
答案 1 :(得分:5)
没有区别。
object literal中的键可以是标识符或字符串文字。您可以在字符串中使用不能在标识符中使用的字符,但foo
不包含任何字符。
(顺便说一句,如果您正在编写JSON而不是JS,那么密钥必须是一个字符串)
答案 2 :(得分:1)
他们是一样的。
引用的语法允许设置非有效标识符(如foo bar
)或保留关键字(如for
)的键。
JSON仅允许引用的语法。