const obj = { 1: "a", 2: "b", 3: "c" };
const set = new Set([1, 2, 3, 4, 5]);
obj.hasOwnProperty("1");
obj.hasOwnProperty(1);
set.has("1");
set.has(1);
false
true
false
true
false
true
true
true
true
true
false
true
true
true
true
true
所有对象键(不包括Symbols
)都会被存储为字符串,即使你没有给定字符串类型的键。这就是为什么obj.hasOwnProperty('1')
也返回true
。
上面的说法不适用于Set
。在我们的Set
中没有“1”
:set.has('1')
返回false
。它有数字类型1
,set.has(1)
返回true
。