JavaScript - 変数展開できる! テンプレート文字列
ES2015からテンプレート文字列という便利な機能が使えるようになりました。
何が一番便利かというと、JavaScriptではこれまで出来なかった変数展開が出来ることです。
他にも複数行文字列の記述や、計算もできるのですが、一番使用頻度が高いのは変数展開ですね。
変数展開のサンプルコード
さっそく変数展開のサンプルコードを紹介します。
「〇〇さん、こんにちは」と表示します。〇〇の部分が変数部分です。
これまでのやり方と、テンプレート文字列を使ったやり方を比較してみます。
var str = '田中';
// これまでのやり方
console.log(name + 'さん、こんにちは'); // 田中さん、こんにちは
// テンプレート文字列を使った変数展開
console.log(`${name}さん、こんにちは`); // 田中さん、こんにちは
テンプレート文字列はバッククォートで囲みます「``」。
そしてテンプレート文字列の中にプレースホルダー「${}」を含めます。 プレースホルダーはドル記号「$」と波括弧「{}」です。
上のサンプルコードでは展開する変数が1つですが、 これが2つ、3つと増えるほど、テンプレート文字列の便利さが実感できます。
次は2つの変数展開の場合です。
var str = 'リンゴ';
var price = 100;
// これまでのやり方
console.log(str + 'の価格は ' + price + ' 円です。') // リンゴの価格は 100 円です
// テンプレート文字列
console.log (`${str}の価格は ${price} 円です。`) // リンゴの価格は 100 円です
これまでのように「+」で文字連結をする必要がありません。
複数行文字列
テンプレート文字列では「\n」記号を使うことなく、複数行文字列を表すことができます。
これまでの方法では、改行コード「\n」を改行箇所に入れる必要がありました。
// これまでの方法 3行の文字列
str = '1行目\n'
+ '2行目\n'
+ '3行目' ;
テンプレート文字列では、改行コード「\n」を入れる必要がありません。 テンプレート文字列内での改行が改行コード「\n」として認識されます。
// テンプレート文字列 3行の文字列
str = `1行目
2行目
3行目`;
console.log(str) の結果はどちらも同じように表示されます。
// console.log(str)の結果
1行目
2行目
3行目
計算式も入れることができる
プレースホルダー内「${}」に変数ではなく、計算式を入れることもできます。 「${a + b}」のような記述です。
下のサンプルコードは2つの変数を足した値を表示します。
var a = 1;
var b = 2;
// これまでの方法
console.log('計算結果は ' + (a + b) + ' です。');
// テンプレート文字列
console.log(`計算結果は ${a + b} です。`);
このように計算式も入れることができます。
テンプレート文字列は便利な機能なのでぜひ使ってみてください。