在JavaScript中为什么行[].every(Boolean)
会返回true
? [].some(Boolean)
会返回false
吗?
如果数组中没有元素,那么它们是未定义的(未声明的),因此是假的。根据这一点,数组[null]
或[undefined]
的代码段完全按照预测返回false
。
但是任何空数组都不应该在第一个位置调用回调Boolean
,并返回undefined
或null
之类的内容,从而再次返回false
。
我错过了什么?
看起来,JS解释器真正做的是Boolean([])
(在第一种情况下)。那当然会返回true
。也许这是正确的?
答案 0 :(得分:0)
.every
会自动返回true,而.some
会自动返回false。无需循环,他们使用默认答案。