2012-08-01 25 views
4

可能重複:
What is the !! (not not) operator in JavaScript?什麼是用法!在JavaScript

我只是碰到使用!!的代碼,這意味着邏輯不是不來看我。

app.isArray = Array.isArray || function(object) { 
    return !!(object && object.concat 
       && object.unshift && !object.callee); 
    }; 

使用!!和不使用它有什麼不同?

(我的猜測是!!將結果轉換爲布爾類型。如果我的猜測是正確的,爲什麼會這樣呢?)

+0

@WesleyMurch謝謝。我試着搜索它,但沒有嘗試。也許我需要改進我的搜索關鍵字。 :) – Mifeng 2012-08-01 07:24:16

+2

不,它很難搜索這樣的東西。只有這樣,我發現它是通過這裏:http://stackoverflow.com/questions/9549780/reference-what-does-this-symbol-mean-in-javascript(任何人都可以自由地重新投票請!!!) – 2012-08-01 07:25:30

+0

@WesleyMurch再次感謝。該鏈接真的很有幫助。 – Mifeng 2012-08-01 07:32:10

回答

5

!只需將內容翻轉爲布爾值即可。以下是一些示例:

!! true === true 
!! false === false 
+1

Wesley Murch已經發布了重複鏈接。爲什麼發佈答案呢? – 2012-08-01 07:23:04

+5

我在看到該評論之前在我的手機上寫下了答案。 – rekire 2012-08-01 07:25:02

+0

謝謝。現在我知道!(某事)將會返回布爾類型false always(某事是真的)。 !(!sth)會將false轉換爲true。 :) – Mifeng 2012-08-01 07:26:44