JavaScript 論理積と理論和

ただのメモです。

論理積 (&&)

const resultA = "" && "foo";
const resultB = 2 && 1 && 0 && 3;
const resultC = "foo" && 4;

console.log(resultA);
console.log(resultB);
console.log(resultC);
出力結果
"" ← が出力されるから空行になる
0
4

上記の出力結果になる。
つまり falsyの値を返すみたいです。
私の感覚的には truthyを返すんだろうなと思っていたので戸惑いました。
const resultC = "foo" && 4; のようにどちらも truthyの場合は右辺の値が出力されます。

理論和 (||)

const resultD = "" || "foo";
const resultE = 0 || 2 || 0;
const resultF = "foo" || 4;

console.log(resultD);
console.log(resultE);
console.log(resultF);
出力結果
foo
2
foo

上記の出力結果になる。
つまり truthyの値を返します。

まとめ

難しいとかではないのですが私は逆の感覚を持っているせいで慣れるまで混乱しそうなので、感覚とは逆だけどそれが正しいということを認識させるためにブログに書きました。