我最近读到一些代码使用!!
将变量转换为布尔值,以便在if语句中进行评估。对我来说,这似乎有些多余,因为变量将被评估其布尔值。这样做是否有性能优势,还是为了更好的浏览器支持?
示例代码:
var x = 0;
var atTop = x===window.scrollY;
if(!!atTop){
alert("At the top of the page.");
}
编辑:
我也见过这种情况,即操作数不是布尔类型的情况,但我一直认为在Javascript中使用if
会将变量的布尔值作为条件进行评估,因为Javascript中的所有值都是“真值”或“假值”。
示例代码:
var x = 1;//or any other value including null, undefined, some string, etc
if(!!x){//x is "truthy"
//wouldn't using if(x) be the same???
console.log("something...");
}
!!
的理由? - Michael Liu!!
的作用(将变量转换为布尔值),但我想知道在 if 语句中使用它是否有任何理由。 - ZamboniatTop
已经是一个布尔值。 - kidA