37

有没有更好的方法来做到这一点?

if(borrar() !== false)
{
    alert('tatatata bum bum bum prapra');
}
return false;
4

6 回答 6

36

如果你想检查 false 和 alert,如果没有,那么没有。

如果你使用if(val),那么任何评估为“真实”的东西,比如非空字符串,也会通过。所以这取决于你的标准有多严格。使用===and!==通常被认为是一种好的做法,以避免通过 JavaScript 的隐式布尔测试意外匹配真假条件。

于 2012-04-13T11:02:43.860 回答
8

如果您想要对 false 进行显式检查(而不是未定义、null 和其他我假设您使用!== 而不是!=),那么是的,您必须使用它。

此外,这在稍小的占用空间中是相同的:

if(borrar() !== !1)
于 2012-04-13T11:02:32.040 回答
8

你可以使用更简单的东西:

if(!var){
    console.log('var is false'); 
}
于 2016-03-23T13:10:48.423 回答
5

检查某事是不是假的……所以它是真的,只要你在做一些量子物理学的事情。

if(!(borrar() === false))

或者

if(borrar() === true)
于 2012-04-13T11:36:09.930 回答
4

如果您希望它明确检查它是否为假(布尔值),您必须使用

if(borrar() !== false)

但在 JavaScript 中,我们通常使用 falsy 和 truthy,你可以使用

if(!borrar())

但随后值 0、''、null、undefined、null 和 NaN 不会生成警报。

以下值总是虚假的:

false,
,0 (zero)
,'' or "" (empty string)
,null
,undefined
,NaN

其他一切都是真实的。包括:

'0' (a string containing a single zero)
,'false' (a string containing the text “false”)
,[] (an empty array)
,{} (an empty object)
,function(){} (an “empty” function)

来源:https ://www.sitepoint.com/javascript-truthy-falsy/

作为将任何值转换为 true 或 false(布尔类型)的额外好处,请使用双感叹号:

!![] === true
!!'false' === true
!!false === false
!!undefined === false
于 2019-09-13T12:16:48.130 回答
1

像这样:

if(borrar())
{
   // Do something
}

如果borrar()返回 true 然后做某事(如果它不是 false)。

于 2012-04-13T11:02:26.043 回答