Rumah  >  Artikel  >  hujung hadapan web  >  Cara menggunakan kaedah eval dalam nodejs

Cara menggunakan kaedah eval dalam nodejs

WBOY
WBOYasal
2022-01-10 11:28:334836semak imbas

Dalam nodejs, kaedah eval() digunakan untuk mengira rentetan dan melaksanakannya sebagai kod skrip Sintaks ialah "eval(rentetan)" jika parameternya bukan rentetan, tetapi integer atau Fungsi jenis, integer atau Fungsi dikembalikan secara langsung.

Cara menggunakan kaedah eval dalam nodejs

Persekitaran pengendalian tutorial ini: sistem Windows 10, nodejs versi 12.19.0, komputer DELL G3.

Cara menggunakan kaedah eval dalam nodejs

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.

Sintaks

eval(string)

Penerangan Parameter

rentetan Diperlukan. Rentetan untuk menilai yang mengandungi ungkapan JavaScript untuk dinilai atau pernyataan untuk dilaksanakan.

Borang parameter kaedah eval()

Jika parameter s bukan rentetan, tetapi integer atau jenis Fungsi, integer atau Fungsi dikembalikan terus.

Contohnya

Contoh 1:

var x = 1;
var y = eval(x);//eval()方法返回1
var z = eval(1)//eval()方法返回1

Contoh 2:

var f = eval(
          function(){
            console.log("1111");
            return 1
           }
        );
/*
eval()方法返回:
    function(){console.log("1111");return 1;}方法
*/
var s = f();//执行方法  s=1,打印日志"1111"
/**>>>>>>>>>>>>>>>**/
var ff = function(){
   console.log("1111");
   return 1;
};
var f = eval(ff);//eval()方法返回ff方法
var s = ff();//执行ff方法  s=1,打印日志"1111"
/**>>>>>>>>>>>>>>>**/
function ff(){
   console.log("1111");
   return 1;
};
var f = eval(ff);//eval()方法返回ff方法
var s = ff();//执行ff方法  s=1,打印日志"1111"

Jika parameter s ialah rentetan dan rentetan itu ialah ungkapan, maka eval () kaedah Akan menilai ungkapan dalam rentetan dan mengembalikan hasil penilaian ungkapan.

Contohnya

eval("'true'");//返回字符串"true"
eval("ture");//返回Boolean类型的true
eval("1");//返回整数1
eval("[0,1,2]");//返回数组[0,1,2]
eval("2+2");//返回整数4
eval("2+'2'");//返回字符串"22"

Jika parameter s ialah rentetan dan ungkapan dalam rentetan itu dalam format JSON (pada masa ini, sepasang kurungan hendaklah ditambah di luar format JSON . JSON), kaedah eval() mengembalikan JSON.

Sebagai contoh

var j = "{'aa':11,'bb':22}";
eval("("+j+")");
//返回{"aa":11,"bb":22}
eval("({'aa':11,'bb':22})");
//返回{"aa":11,"bb":22}
eval("({aa:11,bb:22})");
//js中{aa:11,bb:22}这种格式在解析时会转换成{'aa':11,'bb':22}这种格式
eval("{'aa':11,'bb':22}");
//抛出异常

Nota

Untuk kaedah eval(), format JSON yang dinyatakan di atas juga merupakan sejenis ungkapan. Tetapi jika tiada kurungan dalam format JSON, kaedah eval() tidak akan mengembalikan objek.

Contohnya: eval(“{‘aa’:11,’bb’:22}”) tidak akan mengembalikan {‘aa’:11,’bb’:22}.

Oleh kerana kaedah eval() menganggap kurungan segi empat sama "{}" sebagai blok pernyataan. Kemudian kaedah eval() hanya akan melaksanakan pernyataan dan tidak akan mengembalikan nilai (hasilnya adalah pengecualian).

Cara yang betul untuk menulisnya ialah: tambahkan kurungan "()" di luar format JSON untuk memaksa penukaran jenis ke dalam format JSON (ungkapan) dan mengembalikan nilai JSON. Ini adalah sama dengan fungsi segera (function(){})(). Fungsi () adalah untuk memaksa fungsi menjadi ungkapan dan mengembalikannya.

Jika parameter s ialah rentetan, dan rentetan ialah pernyataan atau blok pernyataan, kaedah eval() akan melaksanakan blok pernyataan atau pernyataan dan mengembalikan tidak ditentukan

Sebagai contoh

eval("var x='1';");
//返回undefined
console.log(x);
//打印字符串1
/**>>>>>>>>>>>>>>>**/
eval("var x=1;var y=2;var z=x+y;");
//返回undefined
console.log(z+"");
//打印字符串3
/**>>>>>>>>>>>>>>>**/
s = eval("function t(){alert(3)};t();");
//执行定义并调用t的方法:弹出3.并且返回undefined
console.log(s);
//打印undefined
/**>>>>>>>>>>>>>>>**/
eval("var j={sex:'男',age:27};alert(j.age);");
/*
此处的json对象不用小括号"()"括起来。因为该处是执行语句,而非计算表达式
*/

Nota

Dalam kaedah eval(), jika format json wujud dalam pernyataan, maka format json tidak perlu disertakan dalam kurungan "()". Sebab mengapa json dalam ungkapan dilampirkan adalah kerana eval() menilai ungkapan dan mengembalikan hasilnya. Dan eval() hanya melaksanakan pernyataan dan tidak mengira nilai pulangan (kerana semua yang dikembalikan adalah (tidak ditentukan))

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!!

Atas ialah kandungan terperinci Cara menggunakan kaedah eval dalam nodejs. 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