Hi,
In Javascript evaluiert
1 === 1.0
zutrue
.
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:(