Schauen wir uns zunächst eine Funktion von JS an
JavaScript-Funktion eval()
Definition und Verwendung
Die Funktion eval() wertet einen String aus und führt den darin enthaltenen JavaScript-Code aus.
Grammatik
eval(string)
Parameterbeschreibung
Zeichenfolge erforderlich. Eine auszuwertende Zeichenfolge, die einen auszuwertenden JavaScript-Ausdruck oder eine auszuführende Anweisung enthält.
Rückgabewert
Der durch die Auswertung der Zeichenfolge erhaltene Wert (falls vorhanden).
veranschaulichen
Diese Methode akzeptiert nur Rohstrings als Parameter. Wenn der Stringparameter kein Rohstring ist, gibt die Methode unverändert zurück. Übergeben Sie daher bitte keine String-Objekte als Parameter an die Funktion eval().
ECMAScript-Implementierungen ermöglichen das Auslösen einer EvalError-Ausnahme, wenn versucht wird, die eval-Eigenschaft zu überschreiben oder die eval()-Methode einer anderen Eigenschaft zuzuweisen und sie über diese Eigenschaft aufzurufen.
Werfen
Wenn in den Parametern keine zulässigen Ausdrücke oder Anweisungen vorhanden sind, wird eine SyntaxError-Ausnahme ausgelöst.
Wenn eval() illegal aufgerufen wird, wird eine EvalError-Ausnahme ausgelöst.
Wenn der an eval() übergebene Javascript-Code eine Ausnahme generiert, übergibt eval() die Ausnahme an den Aufrufer.
Tipps und Hinweise
Tipp: Obwohl eval() sehr leistungsfähig ist, wird es im tatsächlichen Gebrauch selten verwendet.
Beispiel
Beispiel 1
In diesem Beispiel wenden wir eval() auf mehrere Strings an und sehen, welche Ergebnisse zurückgegeben werden:
Kopieren Sie den Codecode wie folgt:
<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
varx=10
document.write(eval(x+17))
</script>
Ausgabe:
200
4
27
Beispiel 2
Sehen Sie sich an, was eval() in anderen Fällen zurückgibt:
Kopieren Sie den Codecode wie folgt:
eval("2+3") // 5 zurückgeben
var myeval = eval; // EvalError-Ausnahme kann ausgelöst werden
myeval("2+3"); // EvalError-Ausnahme kann ausgelöst werden
Mit dem folgenden Code können Sie prüfen, ob die Parameter von eval() zulässig sind:
Kopieren Sie den Codecode wie folgt:
versuchen {
Alert("Ergebnis:" + eval(prompt("Geben Sie einen Ausdruck ein:",")));
}
Catch(Ausnahme) {
Warnung (Ausnahme);
}
Die erste Methode besteht darin, eval in js zu verwenden
Das Folgende ist ein Beispiel, das ich selbst geschrieben habe
Kopieren Sie den Codecode wie folgt:
call("showmsg");
Funktionsaufruf(Funktionsname){
eval("this."+functionName+"()");
}
Funktion showmsg(){
alarm("success");
}
eval kann die von Ihnen gespleißte Zeichenfolge automatisch als Methode erkennen und aufrufen.
Aber auch die Nachteile sind enorm. Stellen Sie sich vor, dass jemand jede Ihrer Methoden aufrufen kann, indem er den Namen der Methode ändert, in der Sie sie aufrufen.
Die zweite Methode wird hauptsächlich als selbstdefinierte Methode verwendet
Hauptsächlich, weil die zweite Methode eine bestimmte Schreibweise erfordert
Kopieren Sie den Codecode wie folgt:
Funktionsaufruf(Funktionsname) {
showmsgs["showmsg"]();
}
var showmsgs = { showmsg: function () {
alarm("success");
}
}
call("showmsg");