変数にテキストやHTMLを入れる時に役立つテンプレートリテラルとプレースホルダー
JavaScriptで動的に出力するHTMLや、複数行に渡るテキストを変数へ格納するようなケースにおいては、改行は「n」のコードで指定する必要があったり、文字列や変数を扱うときには「+」で繋ぐ必要があるなど色々とわかりにくい点がありました。javascriptの新しい仕様であるES6では、テンプレートリテラルとプレースホルダーというものが使えるようになっており、HTMLや複数行のテキストを扱う際にとても便利になっています。
例えば、HTMLをJavaScriptで動的に出力し、テキストを変数で持たせたいといったケースでは、従来ですとこのような記述になるかと思います。(分かりやすいようにインデントをつけています)
【javascript】
const elem = document.getElementById('box'); const first_item = '飛行機'; const second_item = '新幹線'; const third_item = '自動車'; const h = '<ul>' + '<li>' + first_item + '</li>' + '<li>' + second_item + '</li>' + '<li>' + third_item + '</li>' + '</ul>'; elem.insertAdjacentHTML('beforeend',h);上記のコードでは、コードの可読性を上げるために改行とインデントを使っていますが、それぞれの文字列は「+」で繋げている形になります。また変数などもそのまま文字列内では使えないため、分けて書く必要があります。これを実際に実行すると下記のようなHTMLが出来上がります。 【HTML】
<div id="box"> <ul> <li>飛行機</li> <li>新幹線</li> <li>自動車</li> </ul> </div>では、同じ形でES6のテンプレートリテラルとプレースホルダーを使う方法を見ていきます。テンプレートリテラルは開始と終了を「 ` (バッククオート)」で囲むことで、その中ではそのまま自由に改行することができます。また、テンプレートリテラルの中で変数や数式を使うには「 ${ ・・・ } 」で囲むプレースホルダーを用いることで可能になります。 【javascript】
const elem = document.getElementById('box'); const first_item = '飛行機'; const second_item = '新幹線'; const third_item = '自動車'; const h = ` <ul> <li>${first_item}</li> <li>${second_item}</li> <li>${third_item}</li> </ul>`; elem.insertAdjacentHTML('beforeend',h);このようにテンプレートリテラルとプレースホルダーを使うことで、コーディングしやすくなったり、可読性が上がるようになります。ただし、これらはES6で使える仕様になりますので、いろんな環境に適用させるためにはBabelでES5の記述に変換する必要があります。Babelの環境構築が必要になりますが、とても便利な機能なのでコーディングの効率化のためにもぜひ積極的に使っていきたいですね。 (参考にさせて頂いたサイト) テンプレート文字列 - JavaScript | MDN
sponserd
keyword search
recent posts
- Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #2
Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #2
- Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #1
Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #1
- ViteでReactとReact Routerを使ってみる
ViteでReactとReact Routerを使ってみる
- ViteでPugのコンパイル環境を導入する
ViteでPugのコンパイル環境を導入する
- ViteでMarkuplintとPrettierを使える環境を構築する
ViteでMarkuplintとPrettierを使える環境を構築する
- ViteでStylelintとESlintを使える環境を構築する
ViteでStylelintとESlintを使える環境を構築する
- マウスオーバーしたセルを含む行列がハイライトするテーブルを作成する:has()擬似クラスの活用例
マウスオーバーしたセルを含む行列がハイライトするテーブルを作成する:has()擬似クラスの活用例
- ViteでVue.jsとVuex(Pinia)とVue Routerを使ってみる
ViteでVue.jsとVuex(Pinia)とVue Routerを使ってみる
categories