||
OR, 我會把它當作加法看
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
1 可以看成是 true; 0 或空字串 可以看成是 false.
3 || 10
// 輸出 3
false || 10
// 輸出 10
// 短路 OR, 只要第一個滿足 true, 後面就不再判斷。
&&
AND, 我會把它看成是乘法
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
true && false
// 輸出 false
true && true
// 輸出 true
10 && 3
// 輸出 3
// 如果兩個皆為 true, 輸出由後者決定
10 << 1
// 輸出20
// 往左移 1 位,表示 x 2
10 << 3
// 輸出80
// 往左移 3 位,表示 x 2 x 2 x 2
1024 >> 1
// 輸出512
// 往右移 1 位,表示 除以 2
9 >> 1
// 輸出4
在效能上, 10 << 1 會比 10 * 2 來得快