2016-11-11 212 views
-1

我試圖理解雙重感嘆號的確切含義。是的,我看到this question,有很多答案。所以我原則上知道它的作用,但我不知道爲什麼需要使用它。瞭解雙重感嘆號

從我的理解,它將值轉換爲布爾值。所以我們可以說我有以下代碼:

var myBool = !!(index === 0 || index > len); 

我不能就這麼走了!!,我會得到相同的結果:

var myBool = (index === 0 || index > len); 

我獲得通過添加!!什麼?它不是已經是布爾值嗎?

+0

好的,你在另一個問題中不瞭解的是什麼?如果它已經是一個布爾值,那沒有任何意義。 –

+1

您將得到相同的結果。在這種情況下,這是多餘的。 – vlaz

+0

@Barmar,我剛剛關閉並重新打開。你讀過OP寫過什麼了嗎? –

回答

5

!!的目的是規範任何類型的真值或僞值到相應的布爾值。

如果該值已知爲布爾值,比如比較運算符的結果,那就沒有意義了,這是多餘的。所以在你給的例子中沒用。