2014-09-24 52 views
4

关于JSON作为Object Literal Notation的一个子集,在这里有一些关于stackoverflow的问题。但我找不到我的具体问题的答案。对象声明:字符串作为关键字会有所作为吗?

var obj = {keyName : "value"}; 

var obj = {"keyName" : "value"}; 
在JavaScript

之间有什么区别?

+1

它不是“字符串作为键”。键总是字符串。是否引用他们是一个符号问题。一个更好的标题将是“是否引用密钥有所作为?” – 2014-09-25 15:34:12

回答

5

是的。不同之处在于后者的文件大小要比代码中两个额外的"字符大两个字节。

否则不,您提供的两个示例对象之间没有区别。

var obj = {keyName : "value"}; 

obj.keyName;  /* "value" */ 
obj["keyName"]; /* "value" */ 
var obj = {"keyName" : "value"}; 

obj.keyName;  /* "value" */ 
obj["keyName"]; /* "value" */ 
5

没有区别,不同之处在于:第二个将增加在代码中两个额外的"字符,这将花费你两个额外的字节。

其原因两种声明对象属性with or without quotes is because 你可以试试的,

var obj = {"key Name" : "value"}; 

,并仍然可以访问它作为

obj['key Name'] 

但不是

var obj = {key Name : "value"}; 

思考这个方式,有差别

+1

OP的问题询问'keyName'和''keyName“',而不是'key name'和''key Name”'是否有区别。 – 2014-09-24 13:07:42

+4

虽然解释了我需要解释为什么使用这两种符号有什么不同。无论如何,谢谢我正在编辑答案。 – 2014-09-24 13:11:00

相关问题