Heim > Web-Frontend > Front-End-Fragen und Antworten > So verwenden Sie die Eval-Methode in NodeJS

So verwenden Sie die Eval-Methode in NodeJS

WBOY
Freigeben: 2022-01-10 11:28:33
Original
4881 Leute haben es durchsucht

In nodejs wird die Methode eval() verwendet, um einen String zu berechnen und als Skriptcode auszuführen. Die Syntax lautet „eval(string)“, wenn der Parameter kein String, sondern ein Integer- oder Funktionstyp ist, dann direkt Gibt diese Ganzzahl oder Funktion zurück.

So verwenden Sie die Eval-Methode in NodeJS

Die Betriebsumgebung dieses Tutorials: Windows 10-System, NodeJS-Version 12.19.0, DELL G3-Computer.

So verwenden Sie die eval-Methode in nodejs

Die Funktion eval() berechnet einen JavaScript-String und führt ihn als Skriptcode aus.

Wenn das Argument ein Ausdruck ist, führt die Funktion eval() den Ausdruck aus. Wenn das Argument eine Javascript-Anweisung ist, führt eval() die Javascript-Anweisung aus.

Syntax

eval(string)
Nach dem Login kopieren

Parameterbeschreibung

Zeichenfolge Erforderlich. Eine auszuwertende Zeichenfolge, die einen auszuwertenden JavaScript-Ausdruck oder eine auszuführende Anweisung enthält.

Die Parameterform der eval()-Methode

Wenn der Parameter s kein String, sondern eine Ganzzahl oder ein Funktionstyp ist, wird die Ganzzahl oder Funktion direkt zurückgegeben

Zum Beispiel

Beispiel 1:

var x = 1;
var y = eval(x);//eval()方法返回1
var z = eval(1)//eval()方法返回1
Nach dem Login kopieren

Beispiel 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"
Nach dem Login kopieren

Wenn der Parameter s eine Zeichenfolge und die Zeichenfolge ein Ausdruck ist, berechnet die Methode eval() den Ausdruck in der Zeichenfolge und gibt das Ergebnis der Ausdrucksberechnung zurück.

Zum Beispiel

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"
Nach dem Login kopieren

Wenn der Parameter s eine Zeichenfolge ist und der Ausdruck in der Zeichenfolge im JSON-Format vorliegt (zu diesem Zeitpunkt sollte außerhalb des JSON-Formats ein Klammerpaar hinzugefügt werden, um das JSON zu umgeben), dann wird die Auswertung durchgeführt ()-Methode Gibt diesen JSON zurück.

Zum Beispiel

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}");
//抛出异常
Nach dem Login kopieren

Hinweis

Für die eval()-Methode ist das oben erwähnte JSON-Format auch ein Ausdruckstyp. Wenn das JSON-Format jedoch keine Klammern enthält, gibt die Methode eval() das Objekt nicht zurück.

Zum Beispiel: eval(“{‘aa’:11,’bb’:22}”) gibt {‘aa’:11,’bb’:22} nicht zurück.

Weil die eval()-Methode die eckigen Klammern „{}“ als Anweisungsblock behandelt. Dann führt die Methode eval() nur die Anweisung aus und gibt den Wert nicht zurück (das Ergebnis ist eine Ausnahme).

Die richtige Schreibweise ist: Klammern „()“ außerhalb des JSON-Formats hinzufügen, um die Konvertierung des Typs in das JSON-Format (Ausdruck) zu erzwingen und den JSON-Wert zurückzugeben. Dies ist dasselbe wie die unmittelbare Funktion (function(){})(). Die Funktion von () besteht darin, die Funktion in einen Ausdruck zu zwingen und ihn zurückzugeben.

Wenn der Parameter s eine Zeichenfolge ist und die Zeichenfolge eine Anweisung oder ein Anweisungsblock ist, führt die eval()-Methode die Anweisung oder den Anweisungsblock aus und gibt undefiniert zurück

Zum Beispiel

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

Notes

eval()-Methode , Wenn das JSON-Format in der Anweisung vorhanden ist, muss das JSON-Format nicht in Klammern „()“ eingeschlossen werden. Der Grund, warum der JSON im Ausdruck eingeschlossen ist, liegt darin, dass eval() den Ausdruck auswertet und das Ergebnis zurückgibt. Und eval() führt nur die Anweisung aus und berechnet nicht den Rückgabewert (da alle zurückgegebenen Werte (undefiniert) sind)

Weitere Informationen zu Knoten finden Sie unter: nodejs-Tutorial!!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Eval-Methode in NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage