为什么"if(!! variable)"而不是"if(variable)"?

Arn*_*lle 3 javascript

在别人的代码中,我发现这种方式来测试变量的存在:

if(!!variable) {
  //Do something
} else {
  //Something else
}
Run Code Online (Sandbox Code Playgroud)

是否有理由进行测试if(!!variable)而不是if(variable)?这是一个好习惯吗?

Jam*_*rpe 6

是否有理由进行测试if(!!variable)而不是if(variable)

没有.

if()无论如何,使用将强制条件转换为布尔值,不需要手动执行.当你想要保证在其他地方有一个布尔值时,使用这种语法是有意义的,例如,如果你想记录表达式的真实性:

console.log(!!variable)
Run Code Online (Sandbox Code Playgroud)

这将确保您获得truefalse记录,而不是变量的原始值.但在里面if?没什么区别.