〽️ 文字列のに変数や式を挿入。 〽️ 使い方とサンプル。 〽️ クオテーション祭り、さようなら。
JavaScriptコードの「?」をまとめたページはこちら⬆︎。
let name = "taro" console.log(「「1`こんにちは、${name}さん。`」」);
こんにちは、「ふ」です。
JavaScriptのコードで目にする、
`テキスト「「1${〇〇}」」テキスト`
はて? jQueryでもなさそうな....
よく見ると、テキストの前後がバッククウォート「`」で囲まれていませんか?
であれば、これはテンプレートリテラルのプレースホルダです。
文字列の中に変数や式を挿入することのできる、優れモノの記述法です。
通常、JavaScriptで変数などを組み込んだ文字列を作る場合、⬇︎のように非常に面倒くさく、そして読みづらいものを記述する必要がありました。
let text = "(" + foo + ") + 文字列"
しかし。
let text = `(${foo})文字列`
しかし。テンプレートリテラル⬆︎を使用すれば、もっとスッキリ読みやすいコードで書くことができます。
今回もマスターして、コーディングスキルを⤴︎させましょう。
いまいちその意味がピンとこない2つの呼び名。
リテラル(literal)は「文字列」、テンプレート(template)は「雛形」ですね。
「文字列のテンプレート」という意味です。たとえば、
こんにちは、( )さん。
といったイメージです。これは「挨拶のテンプレート文字列」といえますね。
挨拶のテンプレートの( )の中にはたぶん、「太郎」「花子」など相手の名前が入るかと思います。 この内容を入れるために確保されている場所のことを「プレースホルダ(placeholder)」と言います。
今回「?」となった記述、「${ }」の正体です。
JavaScriptでテンプレートリテラルを記述するには、バッククウォート「`」(shift+@)で内容を囲みます。
「「1`」」こんにちは「「1`」」
そしてプレースホルダをテンプレートリテラルの中に含めるには、「${ }」でその領域を確保します。
`こんにちは 「「1${ }」」`
変数を入れてみましょう。
let 「「5name」」 = "太郎"; console.log(`こんにちは${「「5name」」}`); 「「3 >> こんにちは太郎」」
いちいちクオテーション「"」「'」と「+」で連結しなくても、文字列と変数を連結することができます。
プレースホルダに入れられる内容は文字列型の変数だけではありません。次のセクションで色々試してみます。
プレースホルダに変数や式を入れて、出力してみましょう。
数値型の変数はそのまま文字列に変換されます。
let month = 2; let day = 10; console.log(`今日は${month}月${day}日です`); 「「3>>今日は2月10日です」」
プレースホルダ内での演算も可能。
let f = 5; let g = 10; console.log(`${f+g}`); 「「3>>15」」
返り値のある関数を含めても、ちゃんと表示されます。
const kannsuu = (b) => b**2; console.log(`5の2乗は${kannsuu(5)}。`); 「「3>>5の2乗は25。」」
色んなものを入れることができますね。
文字列との組み合わせが複雑になればなるほど、プレースホルダは重宝します。
最後までお読みくださり、ありがとうございます。
今回はJavaScriptのテンプレートリテラルとプレースホルダについて紹介してきました。テンプレートリテラルには他にも便利な使い方があるのですが、さしあたり「文字列と変数や式の連結」についてお伝えしました。
これでもう、ソースコードに「$」が出てきてもビックリすることはありません。
これまで文字列と変数を連結させるには、「+」と「"」「'」のクオテーション大会が開催されていたかと思います。でもそれも終了。
テンプレートリテラルの記述は最初慣れないかもしれませんが、10回も試せばもうクオテーション祭りには戻れません(笑)、ぜひ試してみてください。
ではまた〜 ♪
JavaScript、乱数の範囲や重複を指定〜Math.random使い方。
2021.11.17
整数/範囲/重複の有無を自在にあやつろう。
JavaScriptの矢印「=>」〜これはアロー関数というものです。
2022.01.09
使い方とメリットについて解説。
ブログのクリックをGoogle Analyticsで計測。
2021.11.30
新たなツールは導入せずともOK。
swift、web、ガジェットなど。役立つ情報や観ていてたのしいページを書いていきたいと思います。