Fungsi
eval() menilai 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.
Tatabahasa
参数 | 描述 |
---|---|
string | 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
Penjelasan terperinci tentang penggunaan fungsi eval():
Fungsi ini mungkin tidak digunakan terlalu kerap, tetapi ia mempunyai kesan yang hebat dalam beberapa kes Berikut ialah pengenalan kepada penggunaan fungsi eval().
Fungsi ini boleh menerima str rentetan sebagai parameter, dan laksanakan str ini sebagai sekeping kod javascript Jika hasil pelaksanaan str ialah nilai, ia akan mengembalikan nilai ini, jika tidak, ia akan kembali tidak ditentukan. Jika parameter bukan rentetan, parameter dikembalikan secara langsung Contohnya adalah seperti berikut:
eval("var a=1");//声明一个变量a并赋值1。 eval("2+3");//执行加运算,并返回运算值。 eval("mytest()");//执行mytest()函数。 eval("{b:2}");//声明一个对象。
Perhatian khusus harus diberikan kepada kod di atas Pernyataan terakhir mengisytiharkan objek Jika anda ingin mengembalikan objek ini, anda perlu meletakkan lapisan kurungan lain di luar objek, seperti berikut:
Kandungan di atas secara ringkas memperkenalkan penggunaan fungsi eval(), yang agak mudah difahami. Perkara yang paling mengelirukan tentang fungsi ini ialah skopnya. Mari kita perkenalkan kandungan yang berkaitan dengan contoh
function a(){ eval("var x=1"); console.log(x); } a(); console.log(x);
Ia boleh disimpulkan daripada prestasi di atas bahawa fungsi eval() tidak mencipta skop baharu, dan skopnya ialah skop di mana ia berada. Ini benar dalam semua penyemak imbas arus perdana, tetapi kadangkala perlu menetapkan skop fungsi eval() kepada skop global Sudah tentu, eval() boleh digunakan dalam skop global, tetapi dalam aplikasi sebenar, ia selalunya diperlukan untuk menggunakannya dalam skop tempatan. Menggunakan fungsi ini dengan skop global boleh dilaksanakan menggunakan window.eval().
function a(){ window.eval("var x=1"); console.log(x); } a(); console.log(x);
function a(){ if(window.execScript){ window.execScript("var x=1"); } else{ window.eval("var x=1"); } console.log(x); } a(); console.log(x);
Kandungan di atas adalah penjelasan terperinci tentang penggunaan fungsi eval() dalam JavaScript yang dikongsi oleh editor.