【发布时间】:2023-03-14 05:51:01
【问题描述】:
我经常看到:对象字面量声明为一些键用引号引起来,而另一些则没有。一个来自 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 specification;我所能找到的只是 [第 15.12.3 节的注 6,重点是我的]:
注意 6 对象被渲染为 左大括号后跟零或 更多属性,用 逗号,用右大括号括起来。 一个 属性是带引号的字符串 表示键或属性名称, 一个冒号,然后是字符串化的 适当的价值。一个数组被渲染 作为左左括号,后跟 零个或多个值,以 逗号,右括号结束。
不过,这里只指JSON的字符串化。
【问题讨论】:
-
这怎么可能与十个月后提出的问题重复?你们搞反了。
-
@raven:另一个问题的答案更好,显然它们不应该合并。我的标志被拒绝了。 :P
-
这怎么是一个新问题的重复?
标签: javascript json quotes object-literal