可能重复:
What is the difference between object keys with quotes and without quotes?在javascript中,`{foo:“bar”}`和`{“foo”:“bar”}`有什么区别?
是什么之间的区别和b如下?
var a = {foo : "bar"};
var b = {"foo" : "bar"};
可能重复:
What is the difference between object keys with quotes and without quotes?在javascript中,`{foo:“bar”}`和`{“foo”:“bar”}`有什么区别?
是什么之间的区别和b如下?
var a = {foo : "bar"};
var b = {"foo" : "bar"};
没有区别。
object literal中的密钥可以是标识符或字符串文字。您可以使用字符串中不能用于标识符的字符,但foo
不包含任何字符。
(顺便说一句,如果你在写JSON而不是JS,那么关键就必须是一个字符串)
但是如果'foo'是可变的,例如有'var foo =“moo”;'它不会导致密钥成为变量的值吗? –
@Shadow - no。对象文字语法中不能使用变量作为键。 – Quentin
谢谢,我很困惑与阅读的关键:http://jsfiddle.net/nstKg/ –
它们是相同的。
带引号的语法允许设置非有效标识符(如foo bar
)或保留关键字(如for
)的密钥。
JSON只允许引用语法。
请参阅http://stackoverflow.com/questions/4348478/is-difference-between-object-keys-with-quotes-and-without-quotes – Donovan
堆栈溢出要求您[做一些努力](http:///stackoverflow.com/questions/how-to-ask)在问问题之前,你看过Javascript标准吗? –
已经说过了,但我再说一遍:你的代码片段中没有JSON。 –