Bolehkah saya Menilai Ungkapan Rentetan dalam JavaScript Tanpa Menggunakan eval()?

Barbara Streisand
Lepaskan: 2024-11-20 02:46:01
asal
460 orang telah melayarinya

Can I Evaluate String Expressions in JavaScript Without Using eval()?

Menilai Ungkapan Rentetan dalam JavaScript tanpa Eval()

Masalah:

Dalam JavaScript, fungsi eval() ialah biasa digunakan untuk menilai rentetan yang mengandungi coretan kod. Walau bagaimanapun, ia boleh menimbulkan risiko keselamatan dan isu prestasi. Adakah terdapat cara alternatif untuk mengira nilai formula yang disimpan dalam rentetan tanpa menggunakan eval()?

Jawapan:

Ya, satu alternatif yang selamat dan berprestasi ialah menggunakan pembina Function(). Begini cara ia berfungsi:

function evil(fn) {
  return new Function('return ' + fn)();
}

console.log(evil('12/5*9+9.4*2')); // => 40.4
Salin selepas log masuk

Penjelasan:

  • Fungsi evil() mengambil rentetan fn yang mewakili ungkapan JavaScript.
  • Ia menambah 'return' kepada rentetan, dengan berkesan mencipta fungsi yang mengembalikan nilai ungkapan.
  • Pembina Function() baharu mencipta fungsi daripada rentetan yang diubah suai dan melaksanakannya.
  • Hasil yang dikembalikan ialah nilai yang dikira bagi ungkapan.

Atas ialah kandungan terperinci Bolehkah saya Menilai Ungkapan Rentetan dalam JavaScript Tanpa Menggunakan eval()?. 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