Maison > interface Web > Questions et réponses frontales > Comment utiliser la méthode eval dans nodejs

Comment utiliser la méthode eval dans nodejs

WBOY
Libérer: 2022-01-10 11:28:33
original
4893 Les gens l'ont consulté

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.

Comment utiliser la méthode eval dans nodejs

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)
Copier après la connexion

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
Copier après la connexion

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"
Copier après la connexion

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"
Copier après la connexion

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}");
//抛出异常
Copier après la connexion

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

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal