ホームページ >ウェブフロントエンド >jsチュートリアル >「eval」または「new Function」を使用せずに、通常の文字列をテンプレート リテラルに変換するにはどうすればよいでしょうか?
単純な文字列をテンプレート文字列に変換する
通常の文字列を簡単にテンプレート文字列に変換できますか?次の例を考えてみましょう:
let a = "b:${b}";
eval、new Function、またはその他の動的コード生成手法に頼らずに、これをテンプレート文字列に動的に変換するにはどうすればよいでしょうか?
let b = 10; console.log(a.template()); // b:10
ES6 ソリューション
最新の JavaScript では、ES6 の機能を活用してこれを実現できます。変換:
String.prototype.interpolate = function(params) { const names = Object.keys(params); const vals = Object.values(params); return new Function(...names, `return \`${this}\`;`)(...vals); }; const template = 'Example text: ${text}'; const result = template.interpolate({ text: 'Foo Boo' }); console.log(result); // 'Example text: Foo Boo'
このメソッドは、パラメーターのオブジェクトを受け入れる String.prototype.interpolate 関数を利用します。オブジェクトのキーと値を使用して新しい関数を動的に構築し、それを実行して補間された文字列を返します。
以上が「eval」または「new Function」を使用せずに、通常の文字列をテンプレート リテラルに変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。