JavaScript ショートカット演算子(短絡演算)

  • 2
    いいね
  • 0
    コメント

ショートカット演算子(短絡演算)

論理積/論理和演算を利用する場合、
「左式だけが評価されて、右式が評価されない」ケースがあります。
例えば、 && 演算子の場合、左式がfalseと評価された時点で条件式全体がfalseとなるので、右式は評価(実行)されません。
このような演算のことをショートカット演算子(短絡演算)と言います。

そのため、
これらの式は意味的に等価です。

if(x === 1){console.log('Hello');}//1
x === 1 && console.log ('Hello');//2

1 では変数xが1である場合にメッセージを表示します。
2では左式がfalseの場合、&&演算子では右式は実行されません。
つまり2では、変数xが1である場合のみ右式が実行されるのです。

しかし、2のような記述は原則として避けるべきものです。
それは、右式が実行されるかどうかあいまいになるため、思わぬバグが発生する可能性を孕むためです。

ではショートカット演算子はどのような時に使うのでしょうか?

ショートカット演算子の使いどころ

デフォルトの値として設定するときに使う

var msg = '';
msg = msg || 'Hello, world!';
console.log(msg);//Hello, world!

変数がfalsyな値、つまり空文字列などの場合に、デフォルト値として Hello, world! を代入します。

*falsyな値に意味がある場合
空文字や0などfalsyな値に意味がある場合、
以下のように条件演算子を利用します。

msg = (msg === undefind ? 'Hello, world!':msg);

これによって、変数msgがundefind(未定義)の場合にだけ、デフォルト値が適用されます。