JavaScriptでのテンプレートリテラルとタグ付きテンプレート – JavaScriptで始めるプログラミング
テンプレートリテラルは、JavaScriptの新しい文字列リテラルのタイプであり、より柔軟で強力な文字列操作を可能にします。さらに、タグ付きテンプレートは高度な文字列操作を補助する機能を提供します。
テンプレートリテラルとは?
テンプレートリテラルは、バッククォート(`
)で囲まれた文字列で、埋め込み式やマルチライン文字列をサポートします。例えば:
const name = '太郎';
const message = `こんにちは、${name}さん`;
console.log(message); // こんにちは、太郎さん
タグ付きテンプレートとは?
タグ付きテンプレートは、テンプレートリテラルにタグ関数を適用したもので、カスタム処理を行うことができます。例えば:
function tag(strings, ...values) {
console.log(strings);
console.log(values);
return 'タグ付きテンプレートの結果';
}
const result = tag`名前は${name}です。年齢は${age}歳です。`;
console.log(result); // タグ付きテンプレートの結果
テンプレートリテラルの利点
- 可読性の向上: 変数や式を直接埋め込むことで、コードが明確になります。
- マルチラインサポート: バッククォート内で改行が可能です。
- 簡単な計算: 数値計算や関数の呼び出しを埋め込むことができます。
タグ付きテンプレートの使用例
例えば、SQLクエリのサニタイズを行うタグ付きテンプレート関数を考えてみましょう:
function sanitize(strings, ...values) {
return strings.reduce((result, string, i) => {
const value = values[i] ? String(values[i]).replace(/'/g, "\\'") : '';
return result + string + value;
}, '');
}
const userInput = "悪意のある文字列'";
const query = sanitize`SELECT * FROM users WHERE name = '${userInput}'`;
console.log(query); // SELECT * FROM users WHERE name = '悪意のある文字列\'
まとめ
ここまで、JavaScriptにおけるテンプレートリテラルとタグ付きテンプレートの基本的な使い方と利点について説明しました。テンプレートリテラルは文字列操作の新たな可能性を提供し、タグ付きテンプレートはさらに高度なカスタム処理を実現します。これらの機能を駆使することで、JavaScriptでのプログラミングが一層楽しく、そして効率的になります。