你腦袋短路了嗎?
短路的完整意思是「短路求值(Short-circuit evaluation)」。
簡單來說,如果從第一個值就可以知道結果,那就不用再管第二個的值是什麼。
OR 的短路運算
1 | console.log(3 || 0) // 3 |
3 || 0
時,3 就可以決定結果,所以不會管後面的 00 || 3
時,0 還不能決定結果,所以看第二個值 3,最後通過所以回傳true || console.log('123')
時,true 就可以決定結果,所以 log 不會被執行
AND 的短路運算
1 | console.log(0 && 10) // 0 |
跟 OR 的情況一樣,自己想想看為什麼。