Tach!
Wie kann ich das Input-Feld so gestalten, dass er mehrere Zahlen-Werte, getrennt durch "+", "-", ... zusammen addiert, subtrahiert, etc.?
Wer ist "er"? "er" ist, wie vorher erwähnt, dass Input-Feld. Wollte es nicht doppelt schreiben. Und hab das Feld einfach mal "männlich" gemacht. Bedaure :(
Ein Input-Feld soll rechnen können? Der "er" muss doch jemand anderes sein.
Es ist keine allzugroße Seltenheit, dass Fragen gestellt werden, wie "er" irgendwas machen könnte. Meist passiert das weil der Fragesteller sich nicht ausreichend Gedanken gemacht hat, wie das ganze System abläuft. Welche Teile müssen welche Verarbeitungsschritte in welcher Reihenfolge durchführen, dass das gewünschte Ergebnis zustandekommt. Das ist aber essenziell, wenn man zum Ziel kommen möchte. Die Rückfrage soll eigentlich anregen, doch mal genauer drüber nachzudenken.
try-catch drumherum fängt Eingabefehler ab.
Warum soll ich deiner Meinung nach ein try-catch herum basteln, wenn isNaN(eval(Value)) eh prüft, ob das Ergebnis eine Zahl ist oder nicht? Oder wie meinst du es, wie diese try-catch-Variante aussehen könnte, um Eingabefehler zu vermeiden?
Vermeiden kann man sie nicht. eval() erzeugt eine Fehlermeldung, wenn in Value keine gültige Syntax steht. Die Verarbeitung kommt dann gar nicht mehr bei isNaN() vorbei, weil sie aufgrund des Fehlers schon abgebrochen wurde. Das try-catch sorgt dafür, dass dieser Fehler abgefangen wird und die Verarbeitung geht im catch-Block weiter. Du hättest sonst keine Chance, dem Anwender eine Reaktion zu geben. Solch ein Abbruch wird nur in der Browser-Konsole gezeigt, und der Anwender sieht nichts weiter, außer dass nichts passiert.
Das ist übrigens auch ein Punkt, der gern beim Programmieren vernachlässigt wird. Man sollte sich nicht nur auf die Erreichung des Ziels konzentrieren, sondern auch überlegen, was bei Fehleingaben stattfinden soll, und das auch ausgiebig testen.
dedlfix.