我在JavaScript教程中找到了這段代碼。它讀取值是否爲null,則將此current分配給0,否則分配給值。它是如何工作的?
我很困惑,因爲沒有null
或??代碼中的運算符。javascript if NULL check
this.current=value||0;
我在JavaScript教程中找到了這段代碼。它讀取值是否爲null,則將此current分配給0,否則分配給值。它是如何工作的?
我很困惑,因爲沒有null
或??代碼中的運算符。javascript if NULL check
this.current=value||0;
好了,||
(邏輯或)運算符的語義是這樣的,只要它的左側是truthy,它出現短路並返回該值,否則返回什麼是右側。
即共用圖案由可能falsy(x)的值和默認(Y)傳送到操作員利用的語義:x || y
。如果x原來是非僞造的,那麼整個表達式的計算結果爲x
,否則爲y
。
Null
是不是有提到,因爲null
是falsy和模式適用於所有falsy值。
這是在JavaScript中是如何工作的運營商||
。它不是返回一個布爾值,而是根據它們是否爲真返回操作數。
如果第一個操作數是「真」值,則直接返回其值而不查看其他操作數,否則它只返回另一個操作數的值。
's/true/truthy /' – kay
很簡單,在右側,您有value || 0
評估爲this.current
。你需要理解的是右邊首先評估布爾值OR
。這就是JS ||
應該如何工作。如果它們不是布爾值,它將返回值而不是TRUE/FALSE
。
如果您使用===進行比較,它會比較值和類型。例如
var a = false;
If(a == null){
//triggered
}
If(a === null){
//not works
}
這不是OP的問題。 – Brandon
需要注意的是,null是虛假的。 –
最好的解釋可以在這裏找到:http://stackoverflow.com/questions/2802055/what-does-the-construct-xxy-mean –
或在這裏http://stackoverflow.com/a/4576915/3791314因爲它解釋truthy/falsy值 – mark