2010-09-23 76 views

回答

8

它的值轉換爲布爾類型:

var x = '1'; 
var y = !!x; 

// (typeof y === 'boolean') 

還要注意以下幾點:

var x = 0; 
var y = '0';  // non empty string is truthy 
var z = ''; 

console.log(!!x); // false 
console.log(!!y); // true 
console.log(!!z); // false 
4

它的值轉換爲布爾值通過否定兩次來鍵入。當你想確保一個值是一個布爾值而不是另一個類型的值時使用它。

在JS中,處理布爾值的所有事情都接受其他類型的值,有些甚至可以返回非布爾值(例如,||&&)。但是總是返回一個布爾值,所以它可以用來將事物轉換爲布爾值。

0

它是一種 「不不」 ARG

常用(快捷方式)字符串值轉換爲bool

這樣的..

如果(! '真'){警報(」其真實')}

+0

'if(!!'false'){alert('true')}'仍然提醒''true''。 – 2010-09-23 21:03:40

+0

要添加到Daniel的評論中,JavaScript中的非空字符串總是被視爲「真理」。投射時,空字符串或空字符串將被視爲「虛假」。也許你打算寫'if(!! true){alert('它是真的')}'? – Funka 2010-09-23 21:08:38

+0

你是對的!,對不起/簡短的回答.. :) 丹尼爾的回答比較完整 – user5199217 2010-09-23 21:23:14

2

這是一對logical not operators

它把一個falsey值(如0false)至true然後false和truthy值(如true"hello")至false然後true

最終的結果是你得到一個任何值的布爾值。