2015-12-03 72 views
0

我在JavaScript教程中找到了這段代碼。它讀取值是否爲null,則將此current分配給0,否則分配給值。它是如何工作的?
我很困惑,因爲沒有null或??代碼中的運算符。javascript if NULL check

this.current=value||0;

+1

需要注意的是,null是虛假的。 –

+1

最好的解釋可以在這裏找到:http://stackoverflow.com/questions/2802055/what-does-the-construct-xxy-mean –

+1

或在這裏http://stackoverflow.com/a/4576915/3791314因爲它解釋truthy/falsy值 – mark

回答

2

好了,||(邏輯或)運算符的語義是這樣的,只要它的左側是truthy,它出現短路並返回該值,否則返回什麼是右側。

即共用圖案由可能falsy(x)的值和默認(Y)傳送到操作員利用的語義:x || y。如果x原來是非僞造的,那麼整個表達式的計算結果爲x,否則爲y

Null是不是有提到,因爲nullfalsy和模式適用於所有falsy值。

1

這是在JavaScript中是如何工作的運營商||。它不是返回一個布爾值,而是根據它們是否爲真返回操作數。

如果第一個操作數是「真」值,則直接返回其值而不查看其他操作數,否則它只返回另一個操作數的值。

+1

's/true/truthy /' – kay

1

很簡單,在右側,您有value || 0評估爲this.current。你需要理解的是右邊首先評估布爾值OR。這就是JS ||應該如何工作。如果它們不是布爾值,它將返回值而不是TRUE/FALSE

-5

如果您使用===進行比較,它會比較值和類型。例如

var a = false; 
If(a == null){ 
    //triggered 
} 

If(a === null){ 
//not works 
} 
+3

這不是OP的問題。 – Brandon