我期待在谷歌地圖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