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