便利な `${}` テンプレートリテラル

ここではJavaScriptでの テンプレートリテラルについて解説します。


x = 1; y = 2;

テンプレートリテラルを知らない者は、変数を含む文字列を
"変数x : " + x + ", 変数y : " + y
// "変数x : 1, 変数y : 2"
記述するしかない。

しかし!
テンプレートリテラルを知る者は、変数を含む文字列を
`変数x : ${x}, 変数y : ${y}`
// "変数x : 1, 変数y : 2"
こう記述する。

ご存知でしょうか?


x = 100; y = 20;

これが、
"calc(" + x + "% - " + y + "px)"
// "calc(100% - 20px)"

こう。
`calc(${x}% - ${y}px)`
// "calc(100% - 20px)"

見やすいでしょ~


s = 80; l = 50;

これが、
"rgb(" + (Math.random() * 360) + "deg, " + s + "%, " + l + "%)"
// "rgb([ランダム]deg, 80%, 50%)"

こう。
`rgb(${Math.random() * 360}deg, ${s}%, ${l}%)`
// "rgb([ランダム]deg, 80%, 50%)"

便利でしょ~

つかいかた

記述

バッククオート`` 囲んだ文字列の中で、 ドル記号$ 波括弧{}つけたもの ${}の中に記述することで、 文字列の中にその評価値埋め込むことができる。

例:
let str = `文字列${式}文字列`;
console.log(`文字列${式}文字列`);

文字列内の改行

テンプレートリテラル内での改行は、改行文字として反映されます。 `\n`

例:


                        `1行目-
                        -2行目`

                        /*
                         * 1行目-
                         * -2行目
                         */
                    

ソースコード内で改行して続けて記述

ソースコードの複数行にわたって1行の文字列を記述したい場合は、 改行の直前にバックスラッシュ\ 挿入することで、リテラル中で改行できます。 (テンプレートリテラルのみでなく、通常の文字列リテラル ''""でも可能です)

例:


                        `1行目-\
                        -引き続き1行目`

                        /*
                         * 1行目- -引き続き1行目
                         */
                    

`'シングルクォート'と"ダブルクォート"`

テンプレートリテラル内では、 シングルクォーテーション'' ダブルクォーテーション"" 自由に使用できます。

例:
`onclick="window.location.href = '../index.html'"`

おわり

タグ付きテンプレートなど、 もっと多くの機能を知りたいときは、 MDN Web Docs