邏輯運算中,一般是用布林值參與邏輯運算。比如:
true
&& flase == flase;
但如果是 值 或者是 表示式 參與邏輯運算呢?
比如:123 && 456 == ?
這是就是短路運算(邏輯中斷)。
原理:當有多個表示式(值)時,左邊的表示式值可以確定結果時,就不再繼續運算右邊的表示式的值。
表示式1 && 表示式2
①如果表示式1的值為真,則返回表示式2
②如果表示式1的值為假,則返回表示式1
console.
log(
123&&
456)
;//456
console.
log(0&&
456)
;//0
console.
log(0&&
1&&2)
;//0
表示式1 && 表示式2
①如果表示式1的值為真,則返回表示式1
②如果表示式1的值為假,則返回表示式2
案例:
var num =0;
console.
log(
123|| num++);
//123
console.
log(num)
;//0
//由於上面的**num++為表示式,因此邏輯中斷了,則num++沒有運算,因此num此時還是為0
JS中邏輯中斷(短路操作)
1 邏輯與短路運算 如果表示式1結果為真 則返回表示式2 如果表示式1為假那麼返回表示式1 console.log 表示式1 表示式2 例子 console.log 12 23 列印結果為23 console.log 0 23 列印結果為0 console.log 0 23 3 34 2 列印結果為...
位運算以及邏輯短路
左移變小,右移變大,且移動1整個數值變化的倍數是2倍。比如 12 2 24 12 2 6 這裡n取值為5,k取值為2 k代表的是位的下標,下標從0開始 且以乙個位元組長8位作為解釋。解釋 n 0000 0101 n 2 0000 0001 1 0000 0001 n 2 1 0000 0001 思路...
邏輯與和邏輯或的短路運算
短路運算 var a 1 var b 2 console.log a b 列印1 var a var b 2 console.log a b 列印2 var a 1 var b console.log a b 列印1 如果左邊為真 就先輸出左邊的值 如果左邊為假 就先輸出右邊的值 短路運算 var ...