WebDesigner's Memorandumウェブデザイナーの備忘録

JavaScriptのテンプレートリテラル内で条件分岐を行う方法

JavaScriptのテンプレートリテラル内で条件分岐を行う方法

JavaScriptでES6以降は「テンプレートリテラル」という機能が使えます。

これはバックティック記号(`)で区切ったリテラルのことで、${}の中に変数や簡単な演算を入力して、表示できます。

let text = `合計金額は${totalPrice * 1.1}円です`;

スッキリ書けて便利なのですが、この中で普通にif文を入力するとエラーが表示されます。

// 条件分岐で値がnullなどの場合は0円にしたいが、エラーになる
let text = `合計金額は${if(totalPrice){ totalPrice * 1.1 }else{ 0 }}円です`;

三項演算子を使う

テンプレートリテラル内で条件分岐をしたい場合は、三項演算子を使います。
三項演算子は下記の形式で条件分岐を行います。

条件 ? trueのときの表示 : falseのときの表示

書く内容や順番はif文と同じで「条件 → true → false」の順に書きます。
あとは「?」と「:」記号を忘れたり、逆にしないように注意しましょう。

if(条件){
  trueのときの表示
}else{
  falseのときの表示
}

この方法であればテンプレートリテラル内でも記述して、条件分岐ができます。

let text = `合計金額は${totalPrice ? totalPrice * 1.1 : 0 }円です`;

データが無い場合のデフォルト表示によく使う

テンプレートリテラルはシンプルに書けますし、三項演算子を使った分岐はデータが無い場合のデフォルト表示の処理によく使います。

知らないとまったく意味の分からない記述ですが、慣れれば1行で簡単に記述できますし、テンプレートリテラル以外でも使えます。

真偽それぞれの処理が1行ずつくらいしかない場合は、こちらを使った方がラクそうです。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね