当测试数组中是否存在“ 0”时,即使数组似乎不包含“ 0”,为什么Javascript中的“ in”运算符也返回true?
例如,这返回true,并且很有意义:
var x = [1,2]; 1 in x; // true
这返回false,并且很有意义:
var x = [1,2]; 3 in x; // false
但是,这返回true,我不明白为什么:
var x = [1,2]; 0 in x;
它引用索引或键,而不是值。 0并且1是该阵列的有效指标。还有一些有效的键,包括"length"和"toSource"。尝试2 in x。这将是错误的(因为JavaScript数组的索引为0)。
0
1
"length"
"toSource"
2 in x
请参阅MDN文档。