ES2015 (ES6) で覚えておきたい構文 : テンプレートリテラル
ES2015 になって、文字列を扱うのが便利になるテンプレートリテラル (Template Literal) という構文が増えた。
これまでの JavaScript では、シングルクォートかダブルクォートで文字列を囲み、変数などを間に挟む場合は +
演算子を使って結合していた。
var param = 1;
console.log('パラメータ : ' + param' + ' ・ 現在時刻 : ' + new Date());
こんな具合だ。
テンプレートリテラルは、バッククォートで囲むことで、文字列と変数をごちゃまぜに書けるようになる構文だ。
// Markdown 記法でコードブロック内にバッククォート1つを上手く書けないので、全角バッククォートを使っています。
// 実際は半角のバッククォートを使ってください。
const param = 1;
console.log(`パラメータ : ${param} ・ 現在時刻 ${new Date()}`);
これまで +
演算子で区切って書いていた変数などの部分は ${変数}
といった形で書くことで展開される。
クォートのエスケープが不要になる
テンプレートリテラルはバッククォートで囲むので、シングルクォートやダブルクォートが混じる文字列をそのまま埋め込むことができ、わざわざ ¥
を付けてエスケープする必要がなくなる。これが意外と便利かも。
console.log(`I'm Neo. I said "Template Literal is great."`);
改行をそのまま LF と認識してくれる
テンプレートリテラル内で改行すると、その改行は LF として見なされる。Windows 環境で作っていて、対象の JS ファイルが CR+LF で改行されていたとしても、ブラウザが解析する際は改行コードは全て LF に統一されるので、¥r
とか ¥n
とか書かなくて良い。
// これで、エラーになったりせず「Hoge【¥n】【¥n】Fuga」と扱われる
console.log(`Hoge
Fuga`);
インデントを揃えようとしてスペースを入れると、その分のスペースもテンプレートリテラル内の文字列として扱われるので、その点だけ注意。
ほとんどヒアドキュメントとして使えて良い感じ。