繁体   English   中英

JavaScript对象文字中的单引号

[英]Single quotes in JavaScript object literal

我正在查看Google Maps API教程,我看到了这个:

<script type="text/javascript" 
        src="http://www.google.com/jsapi?autoload={'modules':[{name:'maps', version:3, other_params:'sensor=false'}]}"></script>

为什么modules用单引号括起来?

尽管不是严格要求,将引号括在引号中也是一种很好的做法,以避免与JavaScript保留字冲突的可能性。

想象一下,如果你有class而不是modules - class恰好是JavaScript中的保留字,即使它实际上并没有在当前规范中使用。

事实上,在大多数JSON实现中(因为它实际上是一个JSON字符串),就像jQuery的getJSON一样 ,必须将所有字符串(无论它们代表值或属性)放在双引号内。

当前接受的答案是错误的 - 保留字是有效的标识符名称,因此它们被允许作为JavaScript中的不带引号的属性名称。

JavaScript中的Unquoted属性名称/对象键 ,我对该主题的描述:

如果属性名称是数字文字或有效标识符名称,则只能省略引号。

[...]

括号表示法可以安全地用于所有属性名称。

[...]

只有当属性名称是有效的标识符名称时,才能使用点表示法。

我还制作了一个工具,告诉您是否可以使用任何给定的属性名称而不带引号和/或带点符号。 mothereff.in/js-properties试试吧。

截图

它不是必需的 ,除非:

  1. 该属性的名称与关键字/ reserved相同
  2. 酒店拥有特殊的字符
  3. 该对象旨在用作JSON

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM