JavaScriptのきほん「テンプレートリテラル」

スポンサーリンク
JavaScript

今回は、先回ご紹介した「カレンダーを表示する関数」のうち、以下のコードを詳しくみていくことにしよう。

const todayString = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`;

このコードは、今日の日付をYYYY-MM-DD形式の文字列に変換するためのものである。

テンプレートリテラル

`${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`

テンプレートリテラルを使用して、複数の値を結合し、フォーマットされた文字列を作成する。テンプレートリテラルはバッククォート(`)で囲まれ、${}内に変数や式を埋め込むことができる。

年の取得

today.getFullYear()

todayオブジェクトから年を取得する。例えば、2025年なら2025が返される。

月の取得とフォーマット

String(today.getMonth() + 1).padStart(2, '0')

todayオブジェクトから月を取得する。getMonth()は0から11の値を返すため、1を足して1から12の値にしている。
その後、String()で文字列に変換し、padStart(2, ‘0’)を使用して2桁にフォーマットしている。例えば、4月なら04になる。

日の取得とフォーマット

String(today.getDate()).padStart(2, '0')

todayオブジェクトから日を取得する。String()で文字列に変換し、padStart(2, ‘0’)を使用して2桁にフォーマットしている。例えば、21日なら21になる。

結合

`${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}` 

これらの値をテンプレートリテラルで結合し、YYYY-MM-DD形式の文字列を作成している。例えば、2025年4月21日なら2025-04-21になる。

このように、このコードは、今日の日付を標準的な形式で取得し、他の部分で使用するために文字列として保存するものである。

テンプレートリテラルとは

テンプレートリテラルは、JavaScriptで文字列を作成するための新しい方法である。
バッククォート(`)で囲まれた文字列で、変数や式を埋め込むことができる。
それでは、テンプレートリテラルの特徴と使い方をご紹介しよう。

特徴

変数や式の埋め込み

${}の中に変数や式を入れることで、文字列の中にその値を埋め込むことができる。

const name = "Rocky";
const greeting = `Hello, ${name}!`; // "Hello, Rocky!"

複数行の文字列

バッククォートを使うことで、複数行にわたる文字列を簡単に作成できる。

const multiLine = `This is a string
that spans multiple
lines.`;

式の評価

${}の中に任意のJavaScript式を入れることができ、その結果が文字列に埋め込まれる。 

 const a = 5; const b = 10; const result = `The sum of a and b is ${a + b}.`;
 // "The sum of a and b is 15." 

以下にテンプレートリテラルの具体的な例を示す。

const firstName = "Rocky";
const lastName = "Seven";
const age = 30;

const introduction = `My name is ${firstName} ${lastName} and I am ${age} years old.`;
console.log(introduction); // "My name is Rocky Seven and I am 30 years old."

実行結果

実行結果

このように、テンプレートリテラルを使うと、文字列の中に変数や式を簡単に埋め込むことができ、コードがより読みやすくなる。

コメント

タイトルとURLをコピーしました