Sven Rautenberg: Variablen zusammenrechnen

Beitrag lesen

Aloha!

was ist denn eigentlich so alles böse[TM] und vor allem warum? Bei Frames unterschreib ich das ja noch, aber das ist auch mehr persönliches Mißfallen als objektiv begründet.

eval() ist die eierlegende Wollmilchsau des Javascript.

Und weil das so ist, ist der Performanceaufwand, um eval() auszuführen, erheblich. Man kann damit im Prinzip beliebigen Javascript-Code, der sich im String befindet, ausführen! Man kann nachträglich Funktionen definieren! eval() ist sehr mächtig. Umso wahrscheinlicher ist, dass bei benutzerdefinierten Eingaben ganz zufällig das Falsche im String steht und eval() nicht, wie gewünscht, ein paar Zahlen zusammenzählt, sondern eine Funktion definiert oder den innerHTML-Wert vom Body auf Leerstring setzt.

Ok, das "böse[TM]" ist nicht ganz so böse, weil der Benutzer sich damit nur selbst schaden kann, aber nicht über seinen Browser hinaus, aber dennoch: eval() ist dann zu benutzen, wenn man es wirklich braucht, aber nicht leichtfertig einzusetzen, wenn andere Mittel ebenfalls, und meist besser, zum Ziel führen.

- Sven Rautenberg