关于JSON作为Object Literal Notation的一个子集,在这里有一些关于stackoverflow的问题。但我找不到我的具体问题的答案。对象声明:字符串作为关键字会有所作为吗?
有
var obj = {keyName : "value"};
和
var obj = {"keyName" : "value"};
在JavaScript
之间有什么区别?
关于JSON作为Object Literal Notation的一个子集,在这里有一些关于stackoverflow的问题。但我找不到我的具体问题的答案。对象声明:字符串作为关键字会有所作为吗?
有
var obj = {keyName : "value"};
和
var obj = {"keyName" : "value"};
在JavaScript
之间有什么区别?
是的。不同之处在于后者的文件大小要比代码中两个额外的"
字符大两个字节。
否则不,您提供的两个示例对象之间没有区别。
var obj = {keyName : "value"};
obj.keyName; /* "value" */
obj["keyName"]; /* "value" */
var obj = {"keyName" : "value"};
obj.keyName; /* "value" */
obj["keyName"]; /* "value" */
没有区别,不同之处在于:第二个将增加在代码中两个额外的"
字符,这将花费你两个额外的字节。
其原因两种声明对象属性with or without quotes is because
你可以试试的,
var obj = {"key Name" : "value"};
,并仍然可以访问它作为
obj['key Name']
但不是
var obj = {key Name : "value"};
思考这个方式,有差别
OP的问题询问'keyName'和''keyName“',而不是'key name'和''key Name”'是否有区别。 – 2014-09-24 13:07:42
虽然解释了我需要解释为什么使用这两种符号有什么不同。无论如何,谢谢我正在编辑答案。 – 2014-09-24 13:11:00
它不是“字符串作为键”。键总是字符串。是否引用他们是一个符号问题。一个更好的标题将是“是否引用密钥有所作为?” – 2014-09-25 15:34:12