现在我写了一个关于JavaScript编码的实验室工作的综合体。我知道,有一个像`if(0 in array)` - 这是否合法?
if ('field' in object) {
/* Do something with object.field */
}
被用来确定确实存在在object
一个名为field
变量,即使它等于未定义的结构。
而且我的Firefox开发版44能够确定是否存在这样的一个数组的字段:
if (0 in array) {
/* Do something with first element */
}
问题:是这样的方法是否合法?这是否是生活水平的一部分?
它是什么应该做:
设q是与这些元素的数组:
[ 5, <1 empty slot>, undefined, 5 ]
然后:
0 in q
,2 in q
,3 in q
等号到true
;1 in q
等于false
。
你是什么意思的 “'<1个空插槽>'” 吗? – hindmost
@ behindmost:JavaScript数组本质上是稀疏的。他们可以有空的元素。 –
@ T.J。克劳德是的,我知道。但AFAIK这样的空元素与undefined相同。所以OP的数组样本似乎不明确。 – hindmost