Erv*_*vin 5 javascript coding-style
JavaScript如何处理以下两个声明之间有区别吗?
var foo = {
foo : true,
bar : 1
};
var foo2 = {
"foo" : true,
"bar" : 1
};
Run Code Online (Sandbox Code Playgroud)
JavaScript似乎对待它们是一样的.如果它们真的相同那么,是否有"正确"或首选方式来声明这一点?
属性标识符可以是名称、数字或字符串,但它们都被解释为字符串:
\n\nvar foo = {\n foo : true,\n "bar": true,\n 3 : true\n};\nRun Code Online (Sandbox Code Playgroud)\n\n有关更多详细信息,请参阅 ECMA-262 第 5 版语言规范 \xc2\xa7 11.1.5 。
\n\n请注意,PropertyName构造可能在第 5 版中发生了变化(就像许多事情一样),因此不支持最新版本 JavaScript 的浏览器可能会实现不同版本的 ECMAScript。
\n\n另请注意,JSON 将对象定义为字符串/值对的集合,并且字符串用引号引起来:
\n\nvar fooJSON = \'{"foo":true,"bar":true,"3":true}\';\nRun Code Online (Sandbox Code Playgroud)\n