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/