小编典典

在测试不包含0的数组中是否存在0时,为什么javascript的“ in”运算符返回true?

javascript

当测试数组中是否存在“ 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;

阅读 279

收藏
2020-05-01

共1个答案

小编典典

它引用索引或键,而不是值。 0并且1是该阵列的有效指标。还有一些有效的键,包括"length""toSource"。尝试2 in x。这将是错误的(因为JavaScript数组的索引为0)。

请参阅MDN文档

2020-05-01