Rumah >hujung hadapan web >tutorial js >Bolehkah saya Menilai Ungkapan Rentetan dalam JavaScript Tanpa Menggunakan eval()?

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

Barbara Streisand
Barbara Streisandasal
2024-11-20 02:46:01543semak imbas

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

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!

Kenyataan:
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