2011-01-18 60 views
2

這是一件一直超乎想象到我一會兒,有時我看到人們編寫JavaScript對象,像這樣用單引號PARAMS:單引號Params vs無引號Params?

{ 
    'name': 'Teddy', 
    'last': 'Monster' 
} 

但是,我也看到了比較常見的,沒有報價PARAMS:

{ 
    name: 'Teddy', 
    last: 'Monster' 
} 

是否有理由使用單引號params? 解析速度快嗎?

從我所看到的,沒有速度差異,而只是用不必要的引號混亂文件,並增加文件大小。

我會改變我的想法,如果我能得到一個明確的答案:)

回答

3

不能定義這個哈希:

{ 
    function: 'foo' 
} 

但是你可以定義

{ 
    'function': 'foo' 
} 

個人,如果沒有保留關鍵字作爲關鍵字(就像你指出的那樣不要混淆代碼),我使用前一種方式。

+0

謝謝goreSplatter! – 2011-01-18 22:20:45

1

從技術上講,第二種形式根據JSON spec無效,但它在所有主流Javascript引擎中運行良好。

+4

這是無效的JSON,但有效的Javascript。 – SLaks 2011-01-18 22:08:13

1

快速谷歌搜索在this very website上找到該答案。基本上,如果您正在討論對象文字,則沒有功能差異,但屬性不能是保留字,如「class」或「namespace」。在引號包裹屬性允許使用

0

單引號允許您使用任何有效的字符串,包括保留關鍵字或字符比將在標識符

實例是無效的那些話:

{ 
    'return' : 'ok', 
    'with-hyphen' : '123' 
}