首先需要知道的是,js中有6个值为false,分别是: 0, '', null, undefined, NaN 和 false, 其他为true.可以使用Boolean()函数或是两次取非就能获得对象的布尔值,例如Boolean和!!undefined同样能取得布尔值false,对于0, '', null, undefined, NaN,{}, [], Infinity求布尔值,分别是false false false false false true true true.因此我们知道的一点是:对象的布尔值是true,即使是对象{}。上面两句代码的执行结果是一样的,之前写代码的时候一直用上面的方式,但是发现有些单测覆盖不到,导致单测分支覆盖率很低,换下面的方式就可以很好的解决这个问题,这两句的效果是一样的。如果"||"左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。"将表达式进行强制转化为bool值的运算,运算结果为true或者false。
暂无评论