我正在查看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
用单引号括起来?
答案 0 :(得分:7)
将键包装在引号中是一种很好的做法,即使不是严格要求,也是为了避免与JavaScript reserved words冲突的可能性。
想象一下,如果你有class
而不是modules
- class
恰好是JavaScript中的保留字,即使它实际上并未在当前规范中使用。
答案 1 :(得分:1)
答案 2 :(得分:1)
The currently accepted answer不正确 - 保留字是有效的标识符名称,因此它们在JavaScript中被允许作为不带引号的属性名称。
从Unquoted property names / object keys in JavaScript,我对这个主题的写作:
如果属性名称是数字文字或a valid identifier name,则只能省略引号。
[...]
括号表示法可以安全地用于所有属性名称。
[...]
当属性名称是有效的标识符名称时,点符号只能 。
我还制作了一个工具,告诉您是否可以使用任何给定的属性名称而不带引号和/或带点符号。在mothereff.in/js-properties处尝试。
答案 3 :(得分:0)
除非:
,否则不是必需