2016-02-26 68 views
1

我要記憶一個函數,但我不確定是否應該小心一些可以傳遞給該函數的特定參數。對象中的鍵無效

對象永遠不能擁有哪些鍵(無效鍵),但函數可以接收爲參數?

我想不出任何。即使是nullundefined也是有效的對象鍵。

回答

2

沒有無效的鍵,因爲Javascript中的對象鍵存儲爲字符串。

即使您使用非字符串值作爲鍵,該值也會轉換爲字符串。

你可以用一個簡單的對象看到像{a:2},如果你把它定義爲另一個對象的關鍵,例如:

var b = {}; 
b[{a:2}] = 2; 

你可以看到,{a:2}將被拋入串"[object Object]"

類似地,使用nullundefined作爲密鑰實際上會導致密鑰"null""undefined"

+0

對象鍵也可以是數字,'null','undefined'等... – alexandernst

+0

@alexandernst:是的,但它們仍然存儲爲字符串 – sfletche

+0

不,它們不是。做你的測試,你會看到這些實際存儲爲鍵的類型。 – alexandernst