2012-01-14 53 views
0

bol === !0bol == true完全一樣嗎?'bol ===!0'和'bol == true'是一樣的嗎?

例子:

function myFunction(bol){ 
    if(bol===!0){ 
     return 1; 
    }else{ 
     return -1; 
    } 
} 

alert(myFunction(true));//1 

我將永遠遇到的問題,如果我決定使用它? (與代碼可讀性不同)

+2

可能重複VS ==:不管哪個它「平等「運營商怎麼用?(http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use) – 2012-01-14 01:37:24

+0

我很好奇,這個代碼是什麼被用於? – Ktash 2012-01-14 01:37:31

+1

@MДΓΓБДLL我的問題是不靠近接近一個 – mithril333221 2012-01-14 01:49:52

回答

3

1 == truetrue但是1 === !0是錯誤的。

由於!0true,這相當於bol === true。注意你應該如何使用三個等號來得到完全相同的行爲。

===意味着JavaScript就試圖要挾值進行比較時。如果你真的想要強制,你會使用==。然而,在這種情況下,if只會爲你強制:

if (bol) { ... } 

是基本相同的[JavaScript的===

if (bol == true) { ... } 
+0

所以'BOL ===!0' ==='BOL === TRUE'? – mithril333221 2012-01-14 01:44:59

+0

是的,因爲你評估'!0'第一,這等於'真'。 – 2012-01-14 01:47:30

相關問題