Cara menggunakan kaedah eval dalam nodejs

WBOY
Lepaskan: 2022-01-10 11:28:33
asal
4795 orang telah melayarinya

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)
Salin selepas log masuk

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
Salin selepas log masuk

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"
Salin selepas log masuk

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"
Salin selepas log masuk

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}");
//抛出异常
Salin selepas log masuk

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对象不用小括号"()"括起来。因为该处是执行语句,而非计算表达式
*/
Salin selepas log masuk

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!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!