我正在查看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>
模块
要用单引号括起来?即使没有严格要求,将键用引号括起来是一个好的实践,以避免与JavaScript保留字冲突的可能性。
想象一下,如果你使用的是class
而不是modules
- 尽管在当前规范中并没有实际使用,但class
恰好是JavaScript中的一个保留字。
目前被接受的答案是不正确的——保留字是有效的标识符名称,在JavaScript中允许不带引号的属性名。
从JavaScript中未引用的属性名/对象键,这是我对这个主题的写作:
只有当属性名是数字文字或有效的标识符名称时,才可以省略引号。
[...]
括号表示法可以安全地用于所有属性名。
[...]
只有当属性名是有效的标识符名称时,才能使用点表示法。
我还制作了一个工具,可以告诉您任何给定的属性名是否可以在不带引号和/或带点表示法的情况下使用。 请在mothereff.in/js-properties尝试它。
除非: