- js邏輯運算符
&&
js在執(zhí)行&&時,會判斷兩邊表達式的執(zhí)行結(jié)果
短路功能-遇到flase就不再執(zhí)行下一個表達式
console.log(12&&0) //0
console.log(0&&12) //0
console.log(''&&12) //''
console.log(45&&67) //67
console.log({}&&12) //12
從上面的例子可以總結(jié)出-&&運算結(jié)果
- 當兩邊表達式結(jié)果都為“true”(!result為true)時,返回運算符后邊表達式的結(jié)果
- 當兩邊表達式的結(jié)果都為“false”,或者其中一個結(jié)果為“false”,運算結(jié)果返回第一個為“false”的表達式的值
簡單記:有false返回第一個false,無false返回最后一個true-這里的true和false包括隱式轉(zhuǎn)換為true、false
- js邏輯運算符
||
短路功能-遇到true,返回true-這里的true包括隱式轉(zhuǎn)換為true
console.log(12||0) //12
console.log(0||12) //12
console.log(''||12) //12
console.log(45||67) //45
console.log({}||12) //[object Object] { ... }
總結(jié)-||運算符執(zhí)行結(jié)果
- 當兩邊表達式結(jié)果都為“false”(!result為false)時,返回最后一個表達式的結(jié)果
- 當兩邊表達式的結(jié)果都為“true”,或者其中一個結(jié)果為“true”,運算結(jié)果返回第一個為“true”的表達式的值
簡單記:有true返回第一個true,無true返回最后一個false-這里的true和false包括隱式轉(zhuǎn)換為true、false
-
&&/||和&和|的區(qū)別
&&/||是邏輯運算符-結(jié)果為true、false
&/|是位運算符-會把值轉(zhuǎn)換位二進制,然后進行位運算