2009-09-09 20 views

回答

17

第一密鑰a將被第二'a'被覆蓋。

obj.a將返回2.

如果你的鍵名是一個有效的JavaScript標識符或號碼,JavaScript就允許你忽略引號鍵名。然而,在實踐中,最好是訓練自己始終使用引號,以避免這樣的混淆,並且也是因爲JSON需要它們。

1

沒有任何區別。

alert([ 
    obj.a, 
    obj['a'] 
].join("\n")); // returns 2 in both cases 
7

你不能 - 它們是相同的鍵,並且初始化程序將創建一個具有值'2'的單個元素'a'的對象。試試這個:

var obj = {a:1,'a':2}; 

for (var i in obj) 
{ 
    alert(i + '=' + obj[i]); 
} 

你會只得到「一個響應= 2'

2

如果你不知道鍵 - 使用迭代

for(var k in obj) 
    alert(k + "=" + obj[k]) 

當你知道確切的關鍵價值。使用obj [k]

3

很明顯,'a'是一個字符的字符串,其中小寫字母a表示內容;但是您希望作爲另一個關鍵字嗎?如果您希望它是一個名爲0的變量的值,那麼花括號語法不會幫助你。與Python不同,此語法假定鍵是字符串,並且引號是可選的。

你不得不做這樣的事情:

var a = 'givenkey' 
var obj = {} 
obj[a] = 1 
obj['a'] = 2 

這將創建一個對象等同於:

var obj = {'givenkey':1, 'a':2} 
相關問題