2012-02-10 79 views

回答

4

double not操作符用於將變量投射到boolean類型。 dobule nots互相取消,但看到!返回truefalse,您只能得到兩個輸出中的一個。

例如,

!!0 == true 

所以

!!myDiv == true 

施放myDiv爲布爾,並測試其對真實的。 !!myDiv只會給truefalse

+0

哇,很酷。根據Jam的回答挖掘出這個鏈接。 http://www.bennadel.com/blog/1784-Using-Double-Not-Operator-For-Boolean-Type-Casting.htm – mrtsherman 2012-02-10 15:46:19

+2

爲什麼這在問題中給出的例子中甚至是必要的?「if」條件的謂詞已被解釋爲布爾值。另外,'!! 0!== true',因爲'0'是虛假的。 – 2013-01-08 17:14:28

0

雙重爆炸(!!)將該值轉換爲true布爾值。第一砰「不是的」潛在truthy/falsy值到合適的布爾值,第二個「不是的」回值應該是什麼樣的合適的布爾值。

0

!!將脅迫任何對象爲布爾值。它將評估爲真正的非僞造值。但它不是魔術,它只是一個雙重的不是。

  !!false === false 
      !!true === true 

       !!0 === false 
!!parseInt("foo") === false // NaN is falsy 
       !!1 === true 
      !!-1 === true // -1 is truthy 

      !!"" === false // empty string is falsy 
      !!"foo" === true // non-empty string is truthy 
     !!"false" === true // ...even if it contains a falsy value 

    !!window.foo === false // undefined is falsy 
      !!null === false // null is falsy 

      !!{} === true // an (empty) object is truthy 
      !![] === true // an (empty) array is truthy; PHP 
0
  • &是逐位水平的研究(導致值> = 0)。
  • &&是一個邏輯比較(導致真或假)。
  • =是賦值(總是評估爲真)。
  • ==是一個邏輯比較(導致真或假)。
+0

你還沒有回答這個問題... – Bojangles 2012-02-10 15:48:31

+0

是啊,傻我,我意識到,只要我打「後」:P – twilson 2012-02-10 15:55:47

0

!! myDiv意味着操作員的兩倍! (等於不)。

myDiv似乎是一個類!!myDiv導致一個布爾值(false或true),並且又一次!會再次顛倒這個布爾值(不會導致類實例(指針))。

你也可以寫(myDiv!= null)。

我個人更喜歡myDiv!= null但是!! myDiv更短。

0

這是double bang運算符 - 它將myDiv轉換爲布爾值。