我期待在谷歌地图API的教程,我看到:单引号对象常量
<script type="text/javascript"
src="http://www.google.com/jsapi?autoload={'modules':[{name:'maps', version:3, other_params:'sensor=false'}]}"></script>
为什么modules
包裹在单引号?
我期待在谷歌地图API的教程,我看到:单引号对象常量
<script type="text/javascript"
src="http://www.google.com/jsapi?autoload={'modules':[{name:'maps', version:3, other_params:'sensor=false'}]}"></script>
为什么modules
包裹在单引号?
它包在引号键,即使没有严格要求,以避免与JavaScript reserved words冲突的可能性一个很好的做法。
想象一下,如果您有class
而不是modules
- class
碰巧是JavaScript中的保留字,即使它在当前规范中并未实际使用。
它不是需要除非:
The currently accepted answer是不正确 - 保留字是有效的标识符名称,因此他们允许作为在Java中不带引号的属性名称脚本。
从Unquoted property names/object keys in JavaScript,关于这个问题我写了:如果属性名称是数字文字或a valid identifier name
行情只能被省略。
[...]
括号符号可以安全地用于所有属性名称。
[...]
圆点符号可以仅被当属性名称是有效的标识符名称使用。
我也做了一个工具,它会告诉你,如果可以不带引号和/或点符号可以使用任何给定的属性名称。尝试在mothereff.in/js-properties。
谢谢。 。 。 。 。 – stone 2010-05-07 11:51:22
@stone如果您对Daniel的回复感到满意,您应该点击左侧的绿色勾号接受它。 – kazanaki 2010-05-07 14:14:37
@MathiasBynens:我不打算说保留的作品是无效的标识符名称。只有通常认为将键换成引号是一种很好的做法(特别是为了与ES3向后兼容)。 – 2012-03-05 21:48:43