簡體   English   中英

JavaScript對象文字中的單引號

[英]Single quotes in JavaScript object literal

我正在查看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用單引號括起來?

盡管不是嚴格要求,將引號括在引號中也是一種很好的做法,以避免與JavaScript保留字沖突的可能性。

想象一下,如果你有class而不是modules - class恰好是JavaScript中的保留字,即使它實際上並沒有在當前規范中使用。

事實上,在大多數JSON實現中(因為它實際上是一個JSON字符串),就像jQuery的getJSON一樣 ,必須將所有字符串(無論它們代表值或屬性)放在雙引號內。

當前接受的答案是錯誤的 - 保留字是有效的標識符名稱,因此它們被允許作為JavaScript中的不帶引號的屬性名稱。

JavaScript中的Unquoted屬性名稱/對象鍵 ,我對該主題的描述:

如果屬性名稱是數字文字或有效標識符名稱,則只能省略引號。

[...]

括號表示法可以安全地用於所有屬性名稱。

[...]

只有當屬性名稱是有效的標識符名稱時,才能使用點表示法。

我還制作了一個工具,告訴您是否可以使用任何給定的屬性名稱而不帶引號和/或帶點符號。 mothereff.in/js-properties試試吧。

截圖

它不是必需的 ,除非:

  1. 該屬性的名稱與關鍵字/ reserved相同
  2. 酒店擁有特殊的字符
  3. 該對象旨在用作JSON

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM