var a = [undefined, undefined];
var b = new Array(2);
0 in a // returns true
1 in a // returns true
0 in b // returns false
1 in b // returns false
任何人都可以向我解释为什么会这样吗?
答案 0 :(得分:5)
b = new Array(2);
只是说,b
是一个大小为2的数组。但阵列只是空的。它没有任何元素。所以,没有这样的索引。因此,0
中尚未1
和b
。这些被称为漏洞。
但是,当你说
时var a = [undefined, undefined];
您正在创建一个包含两个元素的数组。因此,它在undefined
和0
处有1
。这就是为什么它们都存在于数组中。
注意:当您只是为变量指定一个值而未使用var
(let
或const
)声明它时,它将变为全局变量变量