Der Martin: Einfache IF-Abfrage funktioniert nicht... warum?

Beitrag lesen

Hallo,

If(document.form.Computername.value.length<"8"){
Außerdem solltest du die Anführungsstriche weglassen, denn die Länge ist eine Zahl und kein String.

richtig, und sowas sieht man öfter - warum eigentlich? Wie kommt man auf so eine Idee?

In JavaScript ist das zwar (imho) kein logischer Fehler, denn die Variablentypen werden (ungefragt und oft auch deinen Wünschen entsprechend) passend umgewandelt.

Auch in Javascript kann das sehr unerwartete Ergebnisse liefern - vor allem dann, wenn der erste Operand tatsächlich ein String ist, der Programmierer aber mit seinen Gedanken bei einem Zahlenwert ist:

if (document.forms[...].age.value<"6")

Hier mag sich der Programmierer irgendwann fragen, warum die Abfrage zutrifft, obwohl er doch im Testlauf 18 eingegeben hat, was ganz sicher größer als 4 ist.

In anderen Programmiersprachen fällt dir das dann aber auf die Füße.

In JS unter Umständen auch, wie man sieht.

Ciao,
 Martin

--
Abraham sprach zu Bebraham: Kann i mal dei Cebra ham?
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(