2016-02-26 64 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