一尘不染

为什么引用某些对象文字属性,而另一些则不引用?

json

我一直都在看:声明的对象常量使某些键用引号引起来,而另一些则没有。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 的 字符串化


阅读 216

收藏
2020-07-27

共1个答案

一尘不染

这些是Javascript保留字,并且(尽管不是真正必需的)语言的语法要求将它们引用。

严格来说,纯“ JSON”表示法要求 所有 “键”字符串都用引号引起来。但是,Javascript本身也可以使用未引用有效标识符(但不是保留字)的键。

2020-07-27