Hallo Struppi und scherzkeks,
Wichtiger als die Tatsache, dass eval langsamer ist, ist vermutlich schon, dass solche Konstruktionen Programme schwerer zu verstehen und unverständlicher machen. Geschwindigkeit spielt bei Javascript kaum eine Rolle.
Es ist eben einfacher, direkt zu sehen, was ein Stück Code tut, als sich erst überlegen zu müssen, was da für Code zusammengebaut wird. Schlechter Verständlichkeit bedeutet dann natürlich mehr Fehler. Im Falle von Javascript sind das natürlich keine Sicherheitslücken.
Hinzu kommt, dass eval eigentlich keine zusätzliche Ausdrucksfähigkeit bringt. Wenn man also irgend etwas berechnen möchte, kann man das mit Hilfe von eval auch nicht geschickter implementieren. Eval hat eigentlich nur dann Vorteile, wenn man wirklich Code ausführen möchte, der nicht aus dem Programm sondern aus einer anderen Quelle stammt (z.B. einem Eingabefeld), also dann, wenn man die Alternative darin bestände, einen Javascript-Interpreter zu schreiben.
Ich erinner mich an eine Diskussion hier letztes Jahr, wo ich gleich losgeblökt habe "eval ist evil", aber der Frager mit eval eine dynamischen Regulären Ausdrucks entwickeln wollte und hat
Wäre interessant, reguläre Ausdrücke kann man ja eigentlich auch ohne eval zusammenbauen.
Grüße
Daniel