ECMA Script6(JavaScript)の三項演算子

ECMA Script6(JavaScript)の三項演算子

ECMA Script6(JavaScript)では、Javaと同じように三項演算子が使えます。

let a = '';
let b = a === '' ? 'test1' : 'test2';
conosole.log(b);

結果は以下のようになります。

test1

三項演算子で気をつけること

ちょっとハマってしまったのでメモ。

let b = '';
let c = 'aaa' + b === '' ? 'test1' : 'test2';
console.log(c);// 'aaa' + bが先に評価される

上記は文字列を連結したかったのですが、上記のように記述すると、’aaa’+bが先に評価されてしまい、’test2’が返ります。

また’aaa’も消えてしまうのでちょっとハマってしまいました。これを期待通り動かせたい場合は括弧で囲むだけです。

let b = '';
let c = 'aaa' + (b === '' ? 'test1' : 'test2');
console.log(c);

結果は以下のようになります。

aaatest1

ECMA Script6(JavaScript)の三項演算子

a ? true : falseという記述方法もできます。

わかりやすく記述するなら

a === undefined ? true : false;

このように書けばわかりやすいですが、

a ? true : false

も記述可能です。

コメント

タイトルとURLをコピーしました