当前位置: 首页 > 面试题库 >

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

郭兴平
2023-03-14
问题内容

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


问题答案:

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

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



 类似资料:
  • 问题内容: 我们最近切换到了新的JSON2 perl模块。我以为一切都归还了。但是我遇到了一些情况,其中perl创建的json字符串中的数字()作为未引用的数字返回。 出于好奇: 是否有人知道为什么存在这种情况以及json模块如何决定是否引用值? 问题答案: 您可以通过执行以下操作将其强制为字符串: 例如: 看起来旧版本的JSON具有可以设置的自动转换功能。您没有设置为真值吗?

  • 问题内容: 我的网站有一些链接样式,CSS如下: 这里是一个的jsfiddle展示他们是如何 应该 在各自不同的状态看: :link =蓝色文字没有装饰 :visited =灰色文字加下划线 :hover =浅蓝色背景的白色文本 在和工作正常,但由于某些原因,国拒绝显示下划线。在使用Firebug或检查器的Chrome和Firefox中,我可以看到实际的样式,文本为灰色,只有它拒绝状态。 关于我在

  • 问题内容: 我已经从Khalid Mughal SCJP复制了以下程序片段,但是我无法 理解输出。 上面的程序为第一个print语句提供了输出true,但是应该给出false,因为它是==关系运算符的引用比较。但是第三张印刷品是假的,我不理解这种不一致。 解释非常感谢! 问题答案: 在第一种情况下,两个和都指向相同的缓存对象。默认情况下,-128和127之间的范围作为对象缓存。我们可以使用

  • 在这里我想通过BOOTSTRAP和css制作一个网站模板,但是在我的代码中,一些BOOTSTRAP类不起作用,比如lead、font-weight、color、bg-color等,如果我在一个部分中使用一些BOOTSTRAP文本颜色,而不是在css中在同一部分中使用其他颜色,我就不起作用了。我想在每个文本上使用相同的font-family。但是如果我使用font-family,than lead类

  • 问题内容: “foo” instanceof String //=> false “foo” instanceof Object //=> false true instanceof Boolean //=> false true instanceof Object //=> false false instanceof Boolean //=> false false instanceof Ob

  • 问题内容: 我有一个嵌套的flexbox布局(使用bootstrapv4),可根据横向/纵向模式更改方向。第一层(由flexbox使用该属性放置)包含5个用作按钮的图标。我无法在这些图标上正常使用该属性。 如果我不使用属性,则图标将按照自然顺序进行布局;但是,如果我尝试使用该属性对其进行布局,则无法正常工作。在代码中,()应该是最后一个元素。不是。我可以通过更改源中的顺序来获得所需的顺序。但是,我