Vergleichsoperatoren – Sebastians Blog https://sgaul.de Neues aus den Softwareminen Thu, 13 Mar 2014 20:34:49 +0000 de-DE hourly 1 https://wordpress.org/?v=6.1.1 https://sgaul.de/wp-content/uploads/2019/02/cropped-sgaul-2-1-32x32.jpg Vergleichsoperatoren – Sebastians Blog https://sgaul.de 32 32 Javascript: 1 == [1] https://sgaul.de/2012/05/28/javascript-1-equals-array/ https://sgaul.de/2012/05/28/javascript-1-equals-array/#comments Mon, 28 May 2012 14:06:21 +0000 https://sgaul.de/?p=1218 Javascript: 1 == [1] weiterlesen]]> 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…

]]>
https://sgaul.de/2012/05/28/javascript-1-equals-array/feed/ 2