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.
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)
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
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"
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"
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}"); //抛出异常
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对象不用小括号"()"括起来。因为该处是执行语句,而非计算表达式 */
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!