邏輯運算中的短路

你腦袋短路了嗎?

短路的完整意思是「短路求值(Short-circuit evaluation)」。

簡單來說,如果從第一個值就可以知道結果,那就不用再管第二個的值是什麼。

OR 的短路運算

1
2
3
console.log(3 || 0) // 3 
console.log(0 || 3) // 3
true || console.log('123') // log 不會被執行

3 || 0 時,3 就可以決定結果,所以不會管後面的 0
0 || 3 時,0 還不能決定結果,所以看第二個值 3,最後通過所以回傳
true || console.log('123') 時,true 就可以決定結果,所以 log 不會被執行

AND 的短路運算

1
2
3
console.log(0 && 10) // 0
console.log(10 && 0) // 0
console.log(10 && 30) // 30

跟 OR 的情況一樣,自己想想看為什麼。

JavaScritp 中的資料型別 ++ 跟 -- 放前面後面的差別
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×