Die Nerd Enzyklopädie 35 - JavaScript Bananas

JavaScript Bananas

Nerd-Enzyklopädie #35

Auf den ersten Blick steckt JavaScript voller Mysterien. Erst wenn man etwas genauer hinschaut, erkennt man die Eleganz einer gewissen Regeltreue. Zu welchem Ergebnis könnte z.B. diese Anweisung führen:

  "b" + "a" + +"a" +"a";

Richtig, es ist baNaNa! Aber warum und wieso nicht einfach baaa? Die Details spielen hier eine wichtige Rolle und damit ist diese Frage prädestiniert für das nächste JavaScript-Bewerbungsgespräch: Dem zweiten “a” wird das Plus-Zeichen ohne Leerzeichen vorangestellt. Damit handelt es sich um einen „unären Operator„, mit dem das darauf folgende Zeichen als numerischer Wert interpretiert wird. Das “a” ist aber kein numerischer Wert, sprich not a number. Die Kurzform dafür lautet NaN und die Anweisung ergibt somit ausgeschrieben:

"b" + "a" + NaN + "a";

NaN ist in JavaScript zwar streng genommen eine Property, die aber „automatisch“ in einen String umgewandelt wird, um die Anweisung ausführen zu können und damit lautet das finale Ergebnis:

baNaNa

JavaScript steckt voller weiterer unterhaltsamer Fallstricke und Seltsamkeiten, deren Lektüre sich gut für einen gemütlichen Abend vor dem Kamin eignet, mehr davon gibt es bei WTFS: [GITH1].