Javascript!还有!!分歧
可能重复:Javascript!还有!!分歧,javascript,operators,Javascript,Operators,可能重复: 这两个运营商的区别是什么?做有特别的意义,还是仅仅意味着你在做两件事操作。我知道Javascript中有“真实”和“真实”的概念,但我不确定!!意思是“真理”!!只是加倍 !true // -> false !!true // -> true !!是将某些内容转换为布尔值的常用方法 !!{} // -> true !!null // -> false 写是将“truthy”或“false”变量转换为真正布尔值的常用方法 例如: var foo = nu
这两个运营商的区别是什么?做有特别的意义,还是仅仅意味着你在做两件事操作。我知道Javascript中有“真实”和“真实”的概念,但我不确定!!意思是“真理”!!只是加倍
!true // -> false
!!true // -> true
!!是将某些内容转换为布尔值的常用方法
!!{} // -> true
!!null // -> false
写
是将“truthy”或“false”变量转换为真正布尔值的常用方法
例如:
var foo = null;
if (!!foo === true) {
// Code if foo was "truthy"
}
在第一个
之后
应用于foo
,返回的值为true
。再次注释该值将使其为false
,这意味着如果未输入块,则中的代码。@为清楚起见,可能“转换为真正的布尔值”<代码>!!当然,0是一个错误的布尔值…@lonesomeday:很好,谢谢。那么为什么不直接做if(foo){}
?这不也是同样的吗?@罗伯特:是的。如果(!!foo===true)
@Robert:在这种情况下,你不需要代码>。但是,当您需要某个值的真正布尔表示时,它非常方便。