Auswerten von String-Werten in JavaScript ohne Eval
Die Funktion eval() in JavaScript birgt Sicherheitsrisiken und kann zur Code-Injection führen. Um diese Probleme zu vermeiden, wird empfohlen, alternative Methoden zur Auswertung von Formelzeichenfolgen zu erkunden.
Eine solche Alternative ist der Function()-Konstruktor, der eine Codezeichenfolge auswerten und das Ergebnis zurückgeben kann. Betrachten Sie beispielsweise die folgende Zeichenfolgenformel:
var apa = "12/5*9+9.4*2";
Anstatt eval(apa) zu verwenden, können Sie den Function()-Konstruktor verwenden, um eine neue Funktion zu erstellen, die die Formel darstellt:
function evil(fn) { return new Function('return ' + fn)(); } console.log(evil('12/5*9+9.4*2')); // => 40.4
Der Function()-Konstruktor verwendet eine Codezeichenfolge als Argument und gibt ein Funktionsobjekt zurück. Die return-Anweisung innerhalb des Strings sorgt dafür, dass das Ergebnis der Formel zurückgegeben wird. Die Funktion console.log() zeigt dann das ausgewertete Ergebnis an.
Die Verwendung des Function()-Konstruktors ist eine sicherere Alternative zu eval(), da er keinen beliebigen Code aus einer Zeichenfolge ausführt. Es bietet eine kontrollierte und vorhersehbare Möglichkeit, Zeichenfolgenausdrücke in JavaScript auszuwerten.
Das obige ist der detaillierte Inhalt vonWie können Sie String-Formeln in JavaScript sicher auswerten, ohne Eval() zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!