Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Adakah eval kaedah dalam es6?

Adakah eval kaedah dalam es6?

WBOY
Lepaskan: 2022-08-30 17:16:02
asal
1784 orang telah melayarinya

eval bukan kaedah dalam es6; kaedah ini adalah dalam JavaScript dan digunakan untuk mengira rentetan JavaScript dan melaksanakan rentetan sebagai kod skrip Jika rentetan masuk ialah ungkapan, ungkapan itu dikembalikan Hasil penilaian, sebaliknya undefined dikembalikan, dan sintaksnya ialah "eval(string)".

Adakah eval kaedah dalam es6?

Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.

eval bukan kaedah dalam es6

fungsi eval() mengira rentetan JavaScript dan melaksanakannya sebagai kod skrip.

Jika hujah ialah ungkapan, fungsi eval() akan melaksanakan ungkapan tersebut. Jika hujah ialah pernyataan Javascript, eval() akan melaksanakan pernyataan Javascript. Fungsi

eval() akan melaksanakan rentetan masuk sebagai kod JavaScript Jika rentetan masuk ialah ungkapan, ia akan mengembalikan hasil penilaian ungkapan, jika tidak ia akan kembali tidak ditentukan.

Penerangan

  • Jika parameter yang dihantar ke eval() bukan rentetan, parameter akan dikembalikan terus.

  • Apabila eval() dipanggil terus dalam mod tidak ketat, pembolehubah yang diisytiharkan menggunakan var dan fungsi yang diisytiharkan menggunakan fungsi akan mengubah suai skop leksikal semasa, dan pembolehubah yang diisytiharkan menggunakan let dan const akan diubah suai. Skop leksikal semasa tidak akan diubah suai, tetapi skop leksikal baharu akan dibuat dalam skop leksikal semasa.

  • Apabila eval() dirujuk secara tidak langsung dalam mod tidak ketat, ia akan dijalankan secara langsung dalam persekitaran global Pembolehubah yang diisytiharkan menggunakan var dan fungsi yang diisytiharkan menggunakan fungsi akan mengubah suai skop leksikal global. Pembolehubah yang diisytiharkan menggunakan let dan const tidak akan mengubah suai skop leksikal global, tetapi akan mencipta skop leksikal baharu dalam persekitaran global.

  • Apabila eval() dipanggil terus dalam mod ketat, skop leksikal bebas baharu akan dibuat pada masa semasa.

  • Apabila eval() dirujuk secara tidak langsung dalam mod ketat (rentetan akan dilaksanakan dalam mod ketat hanya apabila mod ketat dihidupkan dalam rentetan dalam persekitaran global mencipta skop leksikal bebas baharu.

  • Menggunakan window.eval() adalah bersamaan dengan rujukan tidak langsung kepada eval().

  • Kod yang dilaksanakan dalam eval() hanya boleh memanggil jurubahasa JS (Interpreter) untuk mentafsir dan melaksanakan, dan tidak boleh dioptimumkan oleh pengkompil tepat dalam masa (JIT Compiler). Kod yang dilaksanakan dalam eval() Kod mungkin menyebabkan enjin JS melakukan carian berubah-ubah dan tugasan dalam kod mesin yang dijana, menyebabkan masalah prestasi. Penggunaan

  • eval() yang tidak betul boleh menyebabkan rentetan yang dilaksanakan di dalam terdedah kepada pengubahsuaian berniat jahat, menyebabkan isu keselamatan (seperti serangan XSS).

  • Menggunakan eval() boleh mengganggu gelagat pengecil kod. Alat pemampatan kod biasanya menamakan semula nama pembolehubah tempatan kepada nama pembolehubah yang lebih pendek (seperti a dan b, dsb.) untuk mengurangkan saiz kod. Apabila eval() digunakan, memandangkan pembolehubah tempatan luaran boleh diakses oleh eval(), alat pemampatan kod tidak akan memampatkan nama pembolehubah tempatan yang boleh diakses oleh eval(), yang akan mengurangkan kadar pemampatan kod.

Sintaksis

eval(string)
Salin selepas log masuk

Contohnya adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>123</title>
</head>
<body>
<script>
eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));
</script>
</body>
</html>
Salin selepas log masuk

Output hasil:

Adakah eval kaedah dalam es6?

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Atas ialah kandungan terperinci Adakah eval kaedah dalam es6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
es6
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan