我一直看到这一点:声明的对象文字使得一些键用引号括起来,而另一些则没有。来自 jQuery 1.4.2 的示例:
jQuery.props = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly",
maxlength: "maxLength",
cellspacing: "cellSpacing",
rowspan: "rowSpan",
colspan: "colSpan",
tabindex: "tabIndex",
usemap: "useMap",
frameborder: "frameBorder"
};
将前两个属性键 (for
和class
) 用引号括起来,而其他的不带引号有什么意义?有什么区别吗?
我一直在研究ECMAScript 5 规范;我所能找到的只是[第 15.12.3 节的注释 6,强调我的]:
注 6 对象呈现为左大括号后跟零个或多个属性,用逗号分隔,右大括号关闭。属性是一个带引号的字符串,表示键或属性名称、冒号,然后是字符串化的属性值。数组呈现为左括号,后跟零个或多个值,用逗号分隔,用右括号关闭。
但是,这仅指JSON的字符串化。