Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menukar Rentetan Biasa kepada Templat Literal dalam JavaScript ES6 Tanpa Menggunakan `eval` atau `Fungsi baharu`?

Bagaimanakah Saya Boleh Menukar Rentetan Biasa kepada Templat Literal dalam JavaScript ES6 Tanpa Menggunakan `eval` atau `Fungsi baharu`?

Barbara Streisand
Lepaskan: 2024-11-27 08:24:10
asal
536 orang telah melayarinya

How Can I Convert a Regular String to a Template Literal in ES6 JavaScript Without Using `eval` or `new Function`?

Menukar Rentetan kepada Rentetan Templat dengan ES6

Dalam JavaScript, rentetan templat membolehkan anda membenamkan ungkapan dan pembolehubah terus ke dalam rentetan, memberikan sintaks yang ringkas dan boleh dibaca. Walau bagaimanapun, bagaimana jika anda ingin mencipta rentetan templat daripada rentetan bukan templat sedia ada? Soalan ini meneroka kemungkinan untuk mencapai penukaran ini tanpa menggunakan teknik penjanaan kod dinamik seperti eval atau Fungsi baharu.

Penyelesaian yang disediakan memanfaatkan keupayaan interpolasi rentetan ES6 dengan fungsi interpolasi tersuai. Fungsi ini mengambil objek yang mengandungi parameter templat dan menjana rentetan templat secara dinamik menggunakan literal templat JavaScript.

Begini cara penyelesaiannya berfungsi:

String.prototype.interpolate = function(params) {
  const names = Object.keys(params);
  const vals = Object.values(params);
  return new Function(...names, `return \`${this}\`;`)(...vals);
}
Salin selepas log masuk

Fungsi interpolate ditambahkan sebagai tersuai kaedah prototaip kepada objek String. Ia menerima objek pasangan nilai kunci yang mewakili parameter templat.

const template = 'Example text: ${text}';
const result = template.interpolate({
  text: 'Foo Boo'
});
Salin selepas log masuk

Di sini, kami menggunakan fungsi interpolasi pada rentetan templat kami, menghantar objek dengan teks parameter ditetapkan kepada 'Foo Boo'. Fungsi ini mencipta rentetan templat dengan menggunakan literal templat JavaScript dengan pemegang tempat untuk nilai parameter.

console.log(result);
Salin selepas log masuk

Akhir sekali, kami logkan hasilnya ke konsol, yang sepatutnya mengeluarkan:

Example text: Foo Boo
Salin selepas log masuk

Penyelesaian ini membolehkan anda menukar rentetan biasa kepada rentetan templat secara dinamik, membolehkan anda mengambil kesempatan daripada ekspresi dan kebolehbacaan yang ditawarkan oleh rentetan templat dalam JavaScript anda kod.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan Biasa kepada Templat Literal dalam JavaScript ES6 Tanpa Menggunakan `eval` atau `Fungsi baharu`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan