对象声明:字符串作为键有所不同吗?

aRe*_*ess 4 javascript object node.js

关于JSON是Object Literal Notation的子集,stackoverflow上有一些问题浮现在这里.但我找不到我的具体问题的答案.

两者之间有什么区别吗?

var obj = {keyName : "value"};
Run Code Online (Sandbox Code Playgroud)

var obj = {"keyName" : "value"};
Run Code Online (Sandbox Code Playgroud)

在JavaScript?

Jam*_*lly 5

是.不同之处在于后者的文件大小将增加两个字节,以便考虑"代码中的两个额外字符.

否则,您给出的两个示例对象之间没有区别.

var obj = {keyName : "value"};

obj.keyName;       /* "value" */
obj["keyName"];    /* "value" */
Run Code Online (Sandbox Code Playgroud)
var obj = {"keyName" : "value"};

obj.keyName;       /* "value" */
obj["keyName"];    /* "value" */
Run Code Online (Sandbox Code Playgroud)


Nae*_*ikh 5

没有区别,除了第二个将"在你的代码中添加两个额外的字符,这将花费你额外的两个字节.

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

var obj = {"key Name" : "value"};
Run Code Online (Sandbox Code Playgroud)

仍然可以访问它

obj['key Name']
Run Code Online (Sandbox Code Playgroud)

但不是

var obj = {key Name : "value"};
Run Code Online (Sandbox Code Playgroud)

以这种方式思考,存在差异

  • 在解释有什么区别时,我需要解释为什么使用这两种符号.无论如何,谢谢我正在编辑答案. (4认同)