Mit dem ungetypten Vergleichsoperator == in Javascript sollte man schon vorsichtig sein. Dass 1 == "1" ist, ist man wohl gewöhnt. Es ist oft sehr hilfreich und sorgt selten für Fehler. Aber es gibt echt skurrile Kandidaten, an deren True-sein man wohl eher nicht denken würde.
0 == ""0 == []1 == "1"1 == " 1 ""1" != " 1 "1 == [1]"aa" == ["aa"]
Vor allem, dass Arrays gleich ihrem einzigen Element sind, finde ich schon sehr irritierend. Auch beim String-Casting kann man beide nicht auseinanderhalten:
console.dir("" + 1); // "1"
console.dir("" + [1]); // "1"
Tja, Vergleichen will gelernt sein…
Deswegen versuche ich jetzt immer den getypten zu nehmen: ===
Da hast du wohl recht. Obwohl ich mich mit dem auch schon manches mal rumgeärgert habe. Leider weiß ich nicht mehr warum…