ReactのためのJavaScript - 論理演算子とショートサーキット評価
はじめに
Reactを学ぶためのモダンなJavaScriptについてまとめます。今回は論理演算子とショートサーキット評価(短絡評価)について書いていきます。
論理演算子
論理演算は3つ種類があります。
論理積(AND) / 論理和( || ) / 否定(NOT)の3つです。それらを表す演算子を論理演算子といい、JavaScriptではそれぞれ、&& / || / ! という記号で表します。
論理演算子は左から右へ評価されるので、それを踏まえてそれぞれの特徴をみてみましょう。
演算子 | 例 | 動き |
AND && | var1 && var2 | var1がtrueの場合、var2を返します。falseの場合、var1を 返します。なので、var1, 2ともにtrueの場合はtrueを、どちらかが falseの場合はfalseを返します。 |
OR || | var1 || var2 | var1がtrueの場合、var1を返します。falseの場合、var2を 返します。なので、var1/2ともにtrueの場合はtrueを、どちらかが falseの場合もtrueを、どちらともfalseの場合はfalseを返します。 |
NOT ! | ! var | varがtrueの場合、falseを返します。 falseの場合、trueを返します。 |
ベン図で表すとこのようになります。
論理演算子は左から右へ評価されるため、左辺が評価された時点で右辺の評価は行われません。これをショートサーキット評価(短絡評価)といいます。
例えば、A && B という論理式があった場合、Aがfalseならその時点で式全体の結果はfalseに決定します。A || Bという式の場合、Aがtrueであればその時点で式全体の結果はtrueに決定します。
ショートサーキット評価による代入
以上の論理演算子の特徴を踏まえると、if文を使わなくても↓のように条件に応じて変数に代入が行えます。ショートサーキット評価による代入をすることで、コードの簡略化やパフォーマンスの向上が見込めます。
論理積(AND)
let param1 = 'hello';
let param2 = 'bye';
let a = param1 && param2; //=> byeが入る
let b = 'hello' && 'bye'; //=> byeが入る
let param1;
let param2 = 'bye';
let c = param1 && param2; //=> undefined
論理和(OR)
let param1 = 'hello';
let param2 = 'bye';
let a = param1 || param2; //=> helloが入る
let b = 'hello' || 'bye'; //=> helloが入る
let param1;
let param2 = 'bye';
let c = param1 || param2; //=> byeが入る
否定(NOT)
let param;
let a = !param; //=> trueが入る
let b = !'hello'; //=> falseが入る
今回は以上になります。ご覧頂きありがとうございました。
こちらで他のテーマも扱ってるのでよかったらぜひ!