Der Martin: Radio und Textarea werden bei Fehler wieder disabled

Beitrag lesen

Hallo,

if(document.myform.check1.checked == true)

"wenn es wahr ist, dass document.myform.check1.checked wahr ist ..."
Warum so umständlich? Einen Ausdruck, von dem man bereits weiß, dass er nur true oder false sein kann, nochmals explizit mit einem dieser Werte zu vergleichen, nur um wiederum true oder false zu bekommen, ist sinnfrei und macht den Ausdruck schwerer zu lesen.

Warum nicht einfach:

if (document.myform.check1.checked) ...

Und ein paar Zeilen weiter:

if(document.myform.check1.checked == false)

Dasselbe in Grün. Verständlicher und einfacher:

if (!document.myform.check1.checked) ...

Abgesehen davon ist in deinem Code nicht einmal eine erneute Prüfung nötig, sondern einfach nur ein else-Zweig. Wenn der oben geprüfte boolsche Wert nicht true ist, muss er false sein, eine erneute if-Abfrage mit komplementärer Bedingung ist unnötig.

Es gibt Fälle, wo der explizite Vergleich auf true oder false Sinn ergibt - nämlich dann, wenn der untersuchte Ausdruck auch einen anderen Typ als Boolean haben könnte. In Javascript fällt mir im Moment kein Beispiel dazu ein, aber in PHP kommt das oft vor. Da gibt es zahlreiche Funktionen, die im Erfolgsfall einen Zahlenwert liefern (der auch 0 sein kann), im Fehlerfall aber ein boolsches false.
Um solche Fälle richtig zu erfassen, braucht man aber zusätzlich einen typsicheren Vergleich, also mit dem Operator === oder !==.

Ciao,
 Martin

--
Es existiert kein Weg, "für" etwas zu optimieren, sondern nur gegen alles andere.
  (Cheatah)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(