对象声明:作为键的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"};
这样思考,是有区别的