LoginSignup
4
11

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-04-10

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

論理積/論理和演算を利用する場合、
「左式だけが評価されて、右式が評価されない」ケースがあります。
例えば、 && 演算子の場合、左式が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(未定義)の場合にだけ、デフォルト値が適用されます。

4
11
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
4
11