Heim  >  Artikel  >  Web-Frontend  >  Warum Klammern zur Auswertung in JS_javascript-Tipps hinzufügen?

Warum Klammern zur Auswertung in JS_javascript-Tipps hinzufügen?

WBOY
WBOYOriginal
2016-05-16 15:05:401654Durchsuche

Evaluierungseinführung

---eval ist eine Methode des globalen Objektprototyps in der ECMA-Definition;

---Der von eval akzeptierte Parameter ist JS-Code im String-Format. Dieser String wird von der Ausführungs-Engine ausgeführt (denken Sie daran, was ich in „Erweiterte Programmierung“ gesagt habe, erstellen Sie zu diesem Zeitpunkt eine neue Ausführungs-Engine). Geben Sie das Ergebnis an den Ort zurück, an dem eval aufgerufen wird.

<!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>

Zusätzlich: Zusammenfassung

eval ist eine der dynamischen Funktionen von js. Es kann js-Programme direkt ausführen und Ergebnisse zurückgeben. Eine häufige Verwendung besteht darin, json-Daten in js-Objekten wiederherzustellen.


Da es jedoch das Kontextobjekt zur Laufzeit dynamisch ändern kann, besteht die Gefahr von Injektionsangriffen;


Achten Sie bei der Verwendung darauf, wie eval die Syntax von Zeichenfolgen versteht. Ein häufiges Problem ist das Problem mit den Klammern


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn