短路運(yùn)算 與運(yùn)算
短路運(yùn)算的原理:當(dāng)多個(gè)表達(dá)式(值)時(shí),左邊的表達(dá)式值可以確定結(jié)果時(shí),就不再繼續(xù)運(yùn)算右邊的表達(dá)式的值
語法:表達(dá)式1&&表達(dá)式2
如果第一個(gè)表達(dá)式的值為真,則返回表達(dá)式2
如果第一個(gè)表達(dá)式的值為假,則返回表達(dá)式1
// 1. 用我們的布爾值參與的邏輯運(yùn)算 true && false == false
// 2. 123 && 456 是值 或者是 表達(dá)式 參與邏輯運(yùn)算?
// 3. 邏輯與短路運(yùn)算 如果表達(dá)式1 結(jié)果為真 則返回表達(dá)式2 如果表達(dá)式1為假 那么返回表達(dá)式1
console.log(123 && 456); // 456
console.log(0 && 456); // 0
console.log(0 && 1 + 2 && 456 * 56789); // 0
console.log('' && 1 + 2 && 456 * 56789); // ''
// 如果有空的或者否定的為假 其余是真的 0 '' null undefined NaN
邏輯或運(yùn)算
// 4. 邏輯或短路運(yùn)算
如果表達(dá)式1 結(jié)果為真 則返回表達(dá)式1
如果表達(dá)式1 結(jié)果為假 則返回表達(dá)式2
console.log(123 || 456); // 123
console.log(123 || 456 || 456 + 123); // 123
console.log(0 || 456 || 456 + 123); // 456
// 邏輯中斷很重要 它會(huì)影響我們程序運(yùn)行結(jié)果思密達(dá)
var num = 0;
console.log(123 || num++);
console.log(num); // 0
因?yàn)榻Y(jié)果123 為真,所以 num++就不會(huì)運(yùn)算了,所以還是0