2011-03-15 134 views

回答

13

有在你的例子沒有區別。如果你想讓你的房產名稱成爲一個數字或者有空格(這兩個都是有效的,但是很奇怪),那將會有所不同。

var object3 = { 
    '123': 0, 
    'hello world' : 1 
} 

// This is valid 
alert(object3['123']); // -> 0 
alert(object3['hello world']); // -> 1 

// This is not 
alert(object3.123); // -> Syntax Error 

如果你有兩分鐘,你可能會覺得這個頁面非常有幫助。
http://bonsaiden.github.com/JavaScript-Garden/#object.general

+0

@ jessegavin-偉大的鏈接,謝謝 – Yarin 2011-03-15 03:36:15

+0

是的Javascript花園太棒了!它很好地解釋了事情。 – jessegavin 2011-03-15 03:37:29

+0

我不會鏈接到JavaScript Garden,主要是因爲它沒有提供完整的解釋 - 我們沒有着手涵蓋關於主題的所有內容,只包括最奇怪的位;我打算推薦MDC,但是它們在Objects上的頁面嚴重過時(JavaScript 1.0?認真?),所以我想現在會這樣做) – 2011-03-15 04:15:00

0

沒有區別。兩種語法都是正確的

0

這兩者都是平等的,因爲在javascript中,對象attrs。可以是字符串或純文本。

6

jessegavin的回答已經解釋了您詢問的所有內容,但讓我補充一件您未曾問到但可能需要知道的事情。

所有這些都是有效的JavaScript對象常量:

{ a: 0, b: 1, c: 2 } 
{ 'a': 0, 'b': 1, 'c': 2 } 
{ "a": 0, "b": 1, "c": 2 } 

,但只有最後一個是有效的JSON。在JSON中沒有正確引用鍵可能是程序生成無效JSON的主要原因,無效的JSON似乎是人們使用AJAX時遇到的主要問題。

不完全是你的問題的答案,但它仍然是相關的,並可能在未來爲你節省一些麻煩。

+0

@ rsp-感謝那些有價值的提示 – Yarin 2011-03-15 04:20:08