2013-04-05 107 views
1

使用雙負號!!而不使用它有什麼區別(在JS中)?if(!!變量)和if(變量)之間的區別?

例如

if (!!variable){...if (variable){...

我知道有,我已經得到了使用第二方法的預警時間..

何時應該使用?什麼時候會在控制檯中發出警告? (用於變量,對象,數組等)

謝謝!

+3

http://stackoverflow.com/questions/4686583/can-someone-explain-this-double-negative-trick基本上它將它轉換成布爾值。 – smerny 2013-04-05 23:52:40

回答

3

指定它有區別,但不適用於條件語句中。使用!!的原因是因爲第一個!會將您的變量轉換爲其真實性評估,然後是not它。所以「你好」變成真,然後被否定,變成假,而第二個!將否定假,結果是真的。當試圖從一個變量中獲得最終值時,這是可取的。然而,在if語句中做得並不多。

+1

真棒謝謝! 「當試圖獲得真實價值時」是解釋這個問題的好方法。謝謝!我發現在檢查除變量以外的其他東西的存在時使用了這種方法,這是有道理的。 – 2013-04-05 23:56:46

3

在這種特殊情況下,沒有區別。事實上,!!variable是浪費。

但是在更一般的情況下,它會將變量轉換爲布爾值。就個人而言,我只在調試時發現它很有用,並且瞭解哪些值是真實的和錯誤的。

相關問題