【问题标题】:Object declarations: Do strings as keys make a difference?对象声明:作为键的字符串会有所作为吗?
【发布时间】:2014-11-18 23:40:20
【问题描述】:

stackoverflow 上有一些关于 JSON 是 Object Literal Notation 子集的问题。但我找不到我特定问题的答案。

有什么区别

var obj = {keyName : "value"};

和

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

在 JavaScript 中?

【问题讨论】:

  • 它不是“字符串作为键”。键始终是字符串。你是否引用它们是一个符号问题。更好的标题是“引用键有影响吗?”

标签: javascript node.js object


【解决方案1】:

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

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

var obj = {keyName : "value"};

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

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

【讨论】:

    【解决方案2】:

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

    以及两种声明对象属性的原因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"。
    • 在解释有什么区别时,我需要解释为什么使用这两种符号。无论如何,谢谢我正在编辑答案。
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多