introduction à l'évaluation
---eval est une méthode du prototype d'objet global dans la définition ECMA
;
---Le paramètre accepté par eval est du code js au format chaîne. Cette chaîne sera exécutée par le moteur d'exécution (rappelez-vous où j'ai dit 'Programmation avancée', créez un nouveau moteur d'exécution à ce moment), puis retournez. le résultat à l'emplacement où eval est appelé.
<!DOCTYPE html> <html> <head> <title>eval学习</title> <script type="text/javascript"> /* eval("表达式");执行表达式语句 eval("("+javascript类型+")");转为javascript对象 */ var jsonObj={"name":"ljl","data":123};//json,是javascript的对象 var jsonString='{"name":"ljl","data":123}';//javascript的string类型,字符串内容符合json格式的样式 var objType=eval("("+jsonString+")");//通过eval函数将json字符转为javascript对象 alert( typeof jsonString);//string alert( typeof objType);//obj alert(eval(123));//123 alert(typeof eval("("+123+")"));//number var x=2; var y=eval('x+1');//执行 2+1 表达式 alert('y= '+y);//3 </script> </head> <body> </body> </html>
Supplémentaire : Résumé
eval est l'une des fonctionnalités dynamiques de js. Il peut exécuter directement des programmes js et renvoyer des résultats. Une utilisation courante consiste à restaurer les données json dans des objets js ;
Cependant, comme il peut modifier dynamiquement l'objet de contexte au moment de l'exécution, cela entraîne un risque d'attaques par injection ;
Lors de son utilisation, faites attention à la façon dont eval comprend la syntaxe des chaînes. Un problème courant est le problème des « accolades »
.