1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【具体例あり】変数・定数宣言の時の論理演算子 && と || の挙動と AND, OR の結びつけ【 Javascript 】

Last updated at Posted at 2022-01-15

この記事を書いた経緯

普段このような認識で開発していたのですが、ふと気になって、何で変数・定数宣言の時の論理演算子 &&|| って何であの挙動になるのかについて調べてみました。

MDN の
論理積 (&&) - JavaScript | MDN
論理和 (||) - JavaScript | MDN

を読んでみてもピンと来なかったのですが、 読んだ内容を整理して自分で色々実験してみたら、どうしてその挙動になるのかが分かりました。
同じ道を辿る方は多くいらっしゃると思うので、内容をまとめて投稿しました。

筆者のこれまでの状況

  • 普段 &&|| は完全に ANDOR のつもりで使っている。
  • && は左側が true の時に右側のものが返される、 || は左側が false の時に右側のものが返される」ということ自体は知っていたけど、前述の ANDOR とは全く別の使い方だと思っていた。

結論 → 別の使い方ではありませんでした。
(むしろ、本来の用法は後者で、前者の使い方はその応用でした)

実験してみた

&& の場合 ( boolean && boolean )

true && true // 左側が true なので、右側の true が返される

結果 : true

true && false // 左側が true なので、右側の false が返される

結果 : false

false && true // 左側が false なので、左側の false が返される

結果 : false

false && false // 左側が false なので、左側の false が返される

結果 : false

|| の場合 ( boolean || boolean )

true || true // 左側が true なので、左側の true が返される

結果 : true

true || false // 左側が true なので、左側の true が返される

結果 : true

false || true // 左側が false なので、右側の true が返される

結果 : true

false || false // 左側が false なので、右側の false が返される

結果 : false

たしかに、 ANDOR と同じ動き方しとる!! Σ ( ゜゜)

ちなみに…

JavaScript において、 true とみなされるもの、 false とみなされるもの

Truthy (真値) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
こちらに書かれている通り、

false

0

-0

0n

"" // 空の文字列。 '' や `` も当てはまる。

null

undefined

NaN

これらが false とみなされ、それ以外のものは true とみなされます。
なので、あまり見ない記法なのですが

const name = 0 || 'Tomoki';
console.log(name); // Tomoki

const age = 'aiueo' && 25;
console.log(age); // 25

一応こんな感じにも書けます。(わざわざこう書くべき状況は思いつかないのですが)

まとめ

  • && は左側が true の時に右側のものが返され、 || は左側が false の時に右側のものが返される」
  • AND , OR として && , || を使う用法は、上記を利用している。

勉強している時は何でもそうですが、ただ暗記するよりも、しつこいくらい丁寧に確かめてみて腑に落ちる状態にする & 有機的に意味や用法を結びつける事が大事だなと改めて思いました。

参考

論理積 (&&) - JavaScript | MDN
論理和 (||) - JavaScript | MDN
Truthy (真値) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?