Der Martin: if-else Syntax

Beitrag lesen

Hi,

In Javascript evaluiert 1 === 1.0 zu true.
Stärke und Schwäche von JS zugleich: Die Variablen sind flexibel - in toto, also auch im Format. :-))

ja, kann man tatsächlich als Vorteil oder als Nachteil sehen.

Ich mag diese Art von Flexibilität nicht gern, ich hätte lieber eindeutige, feste Typen, wie ich es von C her gewöhnt bin. Die automatische Typkonvertierung führt auch sowohl in Javascript, als auch in PHP immer wieder zu bösen Fallstricken.

Beispiel: Jemand liest per JS Zahleneingaben aus zwei Formularfeldern und glaubt, er würde zwei Zahlen addieren - und wundert sich dann, warum 120+70 anscheinend 12070 ergibt. In Wirklichkeit sind es erstmal Strings, und im Ausdruck

"120" + "70"

wird der Operator '+' als Stringverkettungs-Operator angesehen, weil ja beide Operanden Strings sind. Hätte man die beiden Zahlenwerte subtrahieren wollen, wäre das Problem nicht aufgefallen, denn der Operator '-' ist für Strings nicht definiert, sondern nur für Zahlen:

"120" - "70"

Also werden die Operanden automatisch in Zahlen umgewandelt und das numerische Ergebnis ist 50. So praktisch das manchmal sein mag - ich find's heimtückisch.

Ciao,
 Martin

--
I do take my work seriously, and the way to do that is not to take yourself too seriously.
  (Alan Rickman, britischer Schauspieler)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(