6
是什么这两个运营商之间的区别?没有!有特殊意义,还是仅仅意味着你在做两个'!'操作。我知道JavaScript中有“真相”和“Truthy”概念,但我不确定是否会!意思是“真相”
是什么这两个运营商之间的区别?没有!有特殊意义,还是仅仅意味着你在做两个'!'操作。我知道JavaScript中有“真相”和“Truthy”概念,但我不确定是否会!意思是“真相”
写!!
一个常见的方式是转换“truthy”或“falsey”变量为真正布尔值的常用方法。
例如:
var foo = null;
if (!!foo === true) {
// Code if foo was "truthy"
}
第一!
之后被施加到foo
,返回的值是true
。再次注意该值使其成为false
,这意味着不输入if
块内的代码。
!!只是双倍!
!true // -> false
!!true // -> true
!!是投东西布尔值
!!{} // -> true
!!null // -> false
@为了清楚起见,也许“进入*真正的*布尔值”。 '!! 0'当然是一个* false *布尔值... – lonesomeday 2011-05-30 14:15:45
@lonesomeday:好,赶快,谢谢。 – 2011-05-30 14:16:12
那么为什么不只是'if(foo){}'?这不会也这样做吗? – 2011-05-30 14:18:28