对象声明:作为键的string是否有所作为?

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"}; 

这样思考,是有区别的