Maison > Article > interface Web > Comment utiliser la méthode eval dans nodejs
Dans nodejs, la méthode eval() est utilisée pour calculer une chaîne et l'exécuter sous forme de code de script. La syntaxe est "eval(string)" si le paramètre n'est pas une chaîne, mais un entier ou un type de fonction, alors directement. Renvoie cet entier ou cette fonction.
L'environnement d'exploitation de ce tutoriel : système Windows 10, nodejs version 12.19.0, ordinateur DELL G3.
Comment utiliser la méthode eval dans nodejs
La fonction eval() calcule une chaîne JavaScript et l'exécute sous forme de code de script.
Si l'argument est une expression, la fonction eval() exécutera l'expression. Si l'argument est une instruction Javascript, eval() exécutera l'instruction Javascript.
Syntaxe
eval(string)
Description du paramètre
chaîne obligatoire. Chaîne à évaluer qui contient une expression JavaScript à évaluer ou une instruction à exécuter.
La forme paramètre de la méthode eval()
Si le paramètre s n'est pas une chaîne, mais un entier ou un type Fonction, l'entier ou la Fonction sera renvoyé directement
Par exemple
Exemple 1 :
var x = 1; var y = eval(x);//eval()方法返回1 var z = eval(1)//eval()方法返回1
Exemple 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"
Si le paramètre s est une chaîne et que la chaîne est une expression, la méthode eval() calculera l'expression dans la chaîne et renverra le résultat du calcul de l'expression.
Par exemple
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"
Si le paramètre s est une chaîne et que l'expression dans la chaîne est au format JSON (à ce stade, une paire de parenthèses doit être ajoutée en dehors du format JSON pour entourer le JSON), alors l'eval () renvoie ce JSON.
Par exemple
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}"); //抛出异常
Note
Pour la méthode eval(), le format JSON mentionné ci-dessus est également un type d'expression. Mais s'il n'y a pas de parenthèses au format JSON, la méthode eval() ne renverra pas l'objet.
Par exemple : eval("{'aa':11,'bb':22}") ne retournera pas {'aa':11,'bb':22}.
Parce que la méthode eval() traite les crochets "{}" comme un bloc d'instructions. Ensuite, la méthode eval() exécutera uniquement l'instruction et ne renverra pas la valeur (le résultat est une exception).
La bonne façon de l'écrire est : ajoutez des parenthèses "()" en dehors du format JSON pour forcer la conversion du type au format JSON (expression) et renvoyer la valeur JSON. C'est la même chose que la fonction immédiate (function(){})(). La fonction de () est de forcer la fonction dans une expression et de la renvoyer.
Si le paramètre s est une chaîne et que la chaîne est une instruction ou un bloc d'instructions, la méthode eval() exécutera l'instruction ou le bloc d'instructions et retournera undefined
Par exemple
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
méthode eval(), si le format json existe dans l'instruction, alors le format json n'a pas besoin d'être mis entre parenthèses "()". La raison pour laquelle le json dans l'expression est inclus est que eval() évalue l'expression et renvoie le résultat. Et eval() exécute uniquement l'instruction et ne calcule pas la valeur de retour (car tous les retours sont (non définis))
Pour plus de connaissances sur les nœuds, veuillez visiter : Tutoriel Nodejs !!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!