テンプレートリテラル(テンプレート文字列)は、「 ` (バックティック shift + @)」で囲んだ部分のテキストを文字列データにする。
クォートで囲む通常の文字列にはない機能をいくつか持っている。
文字列の中に変数を埋め込める
変数を埋め込むには、「$ {変数名} 」というように、「${ 」と「 } 」で変数名を囲みます。
${変数名}
通常の文字列連結と比べてみましょう。
// 変数を定義する
let myName = 'たろう';
// 通常の文字列連結
let introduction = 'はじめまして' + myName + 'です';
// テンプレート文字列
let introduction = `はじめまして${myName}です`;
テンプレートリテラル(テンプレート文字列)は文字列を作る際、${〜}で囲まれた変数を読み取って、その内容を前後の文字列と連結して文字列を作ります。
通常の文字列連結よりクォートや演算子が省略できるのでスッキリとした見た目になります。
${〜}内で関数(ファンクション)を呼び出す
テンプレートリテラル(テンプレート文字列)には変数だけでなく、関数(ファンクション)も埋め込むことができます。
まだ関数をご存知ない方は過去記事をご参照ください。
過去記事でご紹介した例文をテンプレートリテラルで書き換えてみます。
function total(price) {
const tax = 0.1;
return price + price * tax;
}
// 通常の文字列連結
console.log('ジュースの値段は' + total(100) + '円です。');
// テンプレート文字列で連結
console.log(`ジュースの値段は${total(100)}円です。`);
${〜}内で計算する
${〜}の中で計算させることもできます。
次の例文では、定数totalPayに計算を含めた文字列を代入しています。
const totalPay = `やまだの支払い総額は${200 * 5}円です。`
文字列の途中で改行する
通常の文字列連結では文字列の途中で改行できませんが、テンプレートリテラル(テンプレート文字列)なら可能になります。
const textElement = `<div>
<p>こんにちは、やまだたろうです</p>
</div>`;
文字列の途中で改行できるのは、HTMLを挿入する処理の際に便利です。