javascript - JS 中的对象字面量符号差异

标签 javascript coding-style

JavaScript 处理以下两个声明的方式有区别吗?

var foo = {
    foo : true,
    bar : 1
};

var foo2 = {
    "foo" : true,
    "bar" : 1
};

JavaScript 似乎对它们一视同仁。如果它们真的相同,那么是否有“正确”或首选的方式来声明这一点?

最佳答案

任何一种形式都适用于“初始化”一个对象(也就是声明一个对象字面量)。

属性标识符可以是 names, numbers, or strings但它们都被解释为字符串:

var foo = {
  foo  : true,
  "bar": true,
  3    : true
};

See the ECMA-262 5th Edition Language Specification § 11.1.5了解更多详情。

请注意,PropertyName 结构可能在第 5 版中发生了变化(很多事情都发生了变化),因此不支持最新版本 JavaScript 的浏览器可能会实现不同版本的 ECMAScript。

另请注意 JSON defines objects as sets of string/value pairs和字符串用引号括起来:

var fooJSON = '{"foo":true,"bar":true,"3":true}';

关于javascript - JS 中的对象字面量符号差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19297540/

相关文章:

c# - 在 C# 中编写代码段分隔符的更优雅的方式?

python:装饰器名称应该是 Action 还是描述?

python - 什么时候应该在 Python 函数名称中的单词之间使用下划线(根据样式指南)?

javascript - 页面加载时的 jQuery keyUp

javascript - 如何在 typescript 中生成延迟迭代的东西

python - 使用 if 条件列表理解

objective-c - 在通用应用程序上分离 iPhone 和 iPad 类有什么好处吗?

javascript - document.getelementsbyClassName ('select_wrapper' )不起作用

javascript - ngResource是否可以同步调用?

javascript - 将 onclick 事件添加到模板