Help us understand the problem. What is going on with this article?

&& や || を使う条件分岐の理解と使用例。

論理演算子の && と || を使用した式の使い方を、感覚的に理解するためのメモ。
【前提知識】truthyfalsyについて。

&&

( AND )

and.js
xxx && /*処理*/ ;
// ↑↓
if ( xxx ) {
  /*処理*/
} else {
  return xxx ;
}

【解説】

  • 通常のif文の代用。
    • ただし、elseの処理は自動的に return xxx ; になる
  • 左方が true なら、次の処理をする。

【挙動例】

  • xxx : true
    • 戻り値 : false。
  • xxx : undefined
    • 戻り値 : xxx。

【使用例】

  • 左方がtrueなら、右方の処理を実行したいとき。
  • 左方が定義されていることを確認した上で、その値のプロパティを参照したいとき。
    • 値が定義されていない状態で参照するとエラーがでてしまうreactなどで。

||

( OR )

or.js
xxx || /*処理*/ ;
// ↑↓
if ( !xxx ) {
  /*処理*/
} else {
  return xxx ;
}

【解説】

  • NOT( ! )を使用するif文の代用。
    • ただし、elseの処理は自動的に return xxx ; になる
  • 左方がfalseなら、次の処理をする。

【挙動例】

  • xxx : true
    • 戻り値 : xxx。
  • xxx : undefined
    • 戻り値 : false。

【使用例】

  • 左方の値が未定義なら 右方の値を使用したい!というとき。
    • つまり、右方の値を初期値にしたいとき。

まとめ

  • if ↔ &&
    • もし○○なら ( or ○○が 真 なら) 、●●する。
  • else ↔ ||
    • もし○○じゃないなら ( or ○○が 偽 なら) 、■■する。
  • if ... else ↔ 三項演算子
    • もし○○なら ( or ○○が 真 なら) ●●、違ったら ( or ○○が 偽 なら) ■■する。
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away