我一直都在看:声明的对象常量使某些键用引号引起来,而另一些则没有。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 起来,而其他两个都不用引号引起来的意义是什么? 有什么区别吗?
for
class
我一直在摸索ECMAScript 5规范;我所能找到的只是[ 15.12.3节的注6,重点是我的 ]:
注6:一个对象呈现为左括号,后跟零个或多个属性,以逗号分隔,右括号封闭。 属性是带引号的字符串,表示键或属性名称 ,冒号,然后是字符串化的属性值。数组呈现为左方括号的开头,后跟零个或多个值,并用逗号分隔,右方括号将其封闭。
但是,这仅指的是JSON 的 字符串化 。
这些是Javascript保留字,并且(尽管不是真正必需的)语言的语法要求将它们引用。
严格来说,纯“ JSON”表示法要求 所有 “键”字符串都用引号引起来。但是,Javascript本身也可以使用未引用有效标识符(但不是保留字)的键。