Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript对象文本中的单引号_Javascript_Html - Fatal编程技术网

JavaScript对象文本中的单引号

JavaScript对象文本中的单引号,javascript,html,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> 为什么模块用单引号括起来?最好用引号括起来,即使不是严格要求的,以避免与代码冲突的可

我正在看Google Maps API教程,我看到了以下内容:

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


为什么
模块
用单引号括起来?

最好用引号括起来,即使不是严格要求的,以避免与代码冲突的可能性

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

事实上,在大多数实现中(因为它实际上是一个JSON字符串),就像jQuery一样,必须放置所有字符串,无论它们代表值还是属性,都用双引号括起来。

除非:

  • 属性的名称与关键字/reserved相同
  • 该地产具有特殊性质
  • 该对象旨在用作JSON
  • 不正确-保留字是有效的标识符名称,因此在JavaScript中允许将其作为不带引号的属性名称

    从,我对这个主题的评论:

    只有当属性名称为数字或文字时,才能省略引号

    [……]

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

    [……]

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

    我还制作了一个工具,可以告诉您是否可以使用任何给定的属性名,而不使用引号和/或点符号。试试看


    @stone如果你对Daniel的回答感到满意,你应该点击左边的绿色勾号来接受它。@MathiasBynens:我不想说保留作品是无效的标识符名称。只是通常认为将密钥括在引号中是一种好的做法(特别是为了与ES3的向后兼容性)。@DanielVassallo足够公平。请注意,在ES5中,情况已不再如此。(另外,ES3中的保留字与ES5中的保留字不同。)“双引号”是JSON的正确方式,因为它们在JSON规范中是必需的。