Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der Verwendung der Funktion eval() in JavaScript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 15:25:54
Original
1428 Leute haben es durchsucht

Die Funktion

eval() wertet einen JavaScript-String aus und führt ihn als Skriptcode aus.

Wenn das Argument ein Ausdruck ist, führt die Funktion eval() den Ausdruck aus. Wenn das Argument eine Javascript-Anweisung ist, führt eval() die Javascript-Anweisung aus.

Grammatik

Code kopieren Der Code lautet wie folgt:

eval(string)

参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

Detaillierte Erläuterung der Verwendung der Funktion eval():

Diese Funktion wird möglicherweise nicht allzu häufig verwendet, hat aber in einigen Fällen eine große Wirkung. Hier finden Sie eine Einführung in die Verwendung der Funktion eval().

Diese Funktion kann einen String str als Parameter akzeptieren und diesen str als einen Teil des Javascript-Codes ausführen. Wenn das Ausführungsergebnis von str ein Wert ist, wird dieser Wert zurückgegeben, andernfalls wird undefiniert zurückgegeben. Wenn der Parameter keine Zeichenfolge ist, wird der Parameter direkt zurückgegeben. Das Beispiel lautet wie folgt:

eval("var a=1");//声明一个变量a并赋值1。
eval("2+3");//执行加运算,并返回运算值。
eval("mytest()");//执行mytest()函数。
eval("{b:2}");//声明一个对象。
Nach dem Login kopieren

Besondere Aufmerksamkeit sollte dem obigen Code gewidmet werden. Wenn Sie dieses Objekt zurückgeben möchten, müssen Sie eine weitere Klammerebene außerhalb des Objekts verschachteln:

Code kopieren Der Code lautet wie folgt:

eval("({b:2})");

Der obige Inhalt stellt kurz die Verwendung der Funktion eval() vor, die relativ einfach zu verstehen ist. Das Verwirrendste an dieser Funktion ist ihr Umfang. Lassen Sie uns den relevanten Inhalt anhand von Beispielen vorstellen:


function a(){ 
 eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 
Nach dem Login kopieren
Im obigen Code kann die erste Funktion „alert()“ 1 anzeigen, während die zweite einen Fehler meldet, da x undefiniert ist.

Aus der obigen Leistung kann geschlossen werden, dass die Funktion eval() keinen neuen Bereich erstellt und dass ihr Bereich der Bereich ist, in dem sie sich befindet. Dies gilt für alle gängigen Browser, aber manchmal ist es notwendig, den Gültigkeitsbereich der Funktion eval() auf den globalen Gültigkeitsbereich festzulegen. Natürlich kann eval() im globalen Gültigkeitsbereich verwendet werden, in tatsächlichen Anwendungen ist dies jedoch häufig der Fall Die Verwendung dieser Funktion im globalen Bereich kann mit window.eval() implementiert werden. Der obige Code kann beispielsweise wie folgt transformiert werden:

function a(){ 
 window.eval("var x=1"); 
 console.log(x); 
} 
a(); 
console.log(x); 
Nach dem Login kopieren
Im obigen Code können beide Alert()-Anweisungen normalerweise 1 angezeigt werden. Diese Methode ist jedoch in Standardbrowsern möglich, aber die Leistung in IE8 und Browsern unter IE8 ist immer noch dieselbe wie bei eval (), und der Bereich ist der Bereich, in dem sie sich befinden. Zu diesem Zeitpunkt können Sie das einzigartige window.execScript () des IE-Browsers verwenden, um das Problem der Browser IE8 und IE8 zu lösen. Um mit allen gängigen Browsern kompatibel zu sein, wird der Code wie folgt geändert:


function a(){ 
 if(window.execScript){ 
  window.execScript("var x=1"); 
 } 
 else{ 
  window.eval("var x=1"); 
 } 
 console.log(x); 
} 
a(); 
console.log(x); 
Nach dem Login kopieren
Wenn der Browser window.execScript() unterstützt, verwenden Sie diese Funktion. Wenn dies nicht der Fall ist, verwenden Sie window.eval(). Dies kann das Problem von IE8 und Browsern unter IE8 lösen.

Der obige Inhalt ist eine detaillierte Erklärung der Verwendung der Funktion eval() in JavaScript, die vom Herausgeber geteilt wurde. Ich hoffe, er gefällt Ihnen.

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage