为什么我使用布尔对象得到未​​定义?

时间:2017-01-10 00:18:03

标签: javascript

function boo(arr)
{
for(var i=0;i<arr.length;i++)
 { 
   var bob = new Boolean(arr[i]);
   if(bob === false)
    {

     console.log(arr[i]);   

    }

 }
}
console.log(boo([0,"how",89,false]));

我想使用Boolean Object从数组中检查所有错误值,如false,null,undefined等,然后打印它。我怎么能用布尔对象呢?如何在布尔对象中添加多个值以检查它是true还是false

1 个答案:

答案 0 :(得分:2)

您无法在javascript中以这种方式比较Boolean个对象。 new Boolean(...) === false将始终评估为false

关于此事

MDN has a good warning

  

不要将原始布尔值true和false与布尔对象的true和false值混淆。

例如(给定value = arr[i]),如果您需要查看某些内容是否真实,请使用!!value。如果是假的,请使用!value。如果您需要查看某些内容是否真的true使用value === true,同样适用于false,而不是Boolean实例。