います。昨日までここにいました。
正確には上記の理解でも間違いではないですが、本当の意味を知っていた方が使い道が広がったり、他人のコードを見ても「ん??」となることが少なくなると思います。
const left = "左です";
const right = "右です";
const which = left && right;
console.log(which);
こちらの出力結果は何になると思いますか?
正解は「右です」。では次、
const which = left || right;
console.log(which);
こちらはどうでしょう。
正解は「左です」。
&& = AND | | = OR という理解だと、恐らく答えられないのではないかと思います。
&&と| |の本当の意味は、
&&・・・左がtrueなら右を返却
| | ・・・左がfalseなら右を返却
なのです。
数値や文字列の場合は0やnull以外はtrue判定となるので、&&の場合はleft=trueとなり、rightが返却されます。| |の場合はleft=true(falseではない)なのでそのままleftが返却されます。
この知識を用いると、if文を省略できる場合があります。
const left = "左です";
const right = "右です";
//if文を使う場合
if (left===false) {
console.log(right);
} else {
console.log(left);
}
// ||を使う場合
console.log(left || right);
同じ処理を一行で書くことができます。
コメント