Maison  >  Article  >  interface Web  >  Pourquoi ajouter des parenthèses à évaluer dans les conseils JS_javascript

Pourquoi ajouter des parenthèses à évaluer dans les conseils JS_javascript

WBOY
WBOYoriginal
2016-05-16 15:05:401598parcourir

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 »
.

Déclaration:
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