molily: mit Wert von radio-buttons rechnen

Beitrag lesen

var erg = (+el1.value) + (+e2.value) + (+e3.value);
Das + ist hier genauso vielsagend wie ein unnötig gesprächiges parseInt/parseFloat, ohne aber den Lesefluss unnötig zu stören bzw. den Code aufzublähen.

»+« ist so vielsagend wie »Number()« oder parseInt? Das möchte ich stark bezeifeln. Der unäre +-Operator ist 90% der JavaScript-Programmierer vermutlich unbekannt. Bei »+« hätte ich als Anfänger eher die (falsche) Ahnung, dass es so etwas wie Math.abs macht. Wenn man »Number(...)« liest, muss man Number() vorher gar nicht gekannt haben, um eine Ahnung zu bekommen, was dieser Code tut. Und diese erste Ahnung »das macht wohl eine Number aus dem Wert« ist auch noch richtig. Besser lesbaren Code kann man doch nicht schreiben.

Ich persönlich bin für immer für die kürzeste Schreibweise, solange sie verständlich ist.

Verständlichkeit ist ja kein Absolutum. Für wen und in welchem Kontext, wäre die Frage. Mein Code sollte auch für diejenigen lesbar sein, die nicht die JavaScript-Coercion-Regeln im Kopf haben bzw. implizites Typecasting gewisser Operatoren kennen. Wie gesagt würde ich mir ohnehin eine Helferfunktion schreiben, die auch bspw. das Komma als Dezimaltrenner akzeptiert. Diese wäre dann in ihrer Funktionsweise und im Code gut dokumentiert.

Ob ein Statement wie
!isNaN( erg = (+el1.value) + (+e2.value) + (+e3.value) ) || alert('Der Variablen erg wurde ein ungültiger Wert zugewiesen');
noch verständlich ist, darüber lässt sich natürlich streiten.

Für mich ist es hervorragend verständlich, auch wenn ich sie aus persönlichen Präferenzen in mindestens zwei Zeilen aufsplitten würde.
Auf die Welt loslassen bzw. in einem kommerziellen Projekt verwenden würde ich diese Zeile(n) jedoch garantiert nicht.

Mathias