JavaScript对象文字中的单引号

时间:2010-05-07 11:41:57

标签: javascript html

我正在查看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用单引号括起来?

4 个答案:

答案 0 :(得分:7)

将键包装在引号中是一种很好的做法,即使不是严格要求,也是为了避免与JavaScript reserved words冲突的可能性。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

The currently accepted answer不正确 - 保留字是有效的标识符名称,因此它们在JavaScript中被允许作为不带引号的属性名称。

Unquoted property names / object keys in JavaScript,我对这个主题的写作:

  

如果属性名称是数字文字或a valid identifier name,则只能省略引号。

     

[...]

     

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

     

[...]

     

当属性名称是有效的标识符名称时,点符号只能

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

Screenshot

答案 3 :(得分:0)

除非:

,否则不是必需
  1. 该属性的名称与关键字/ reserved
  2. 相同
  3. 该物业有特殊字符
  4. 该对象旨在用作JSON