Herzlich willkommen zu einem neuen Eintrag im Web-Entwickler-Blog! Diese Woche möchte ich euch eine Kleinigkeit über „Zahlen in Javascript“ zeigen.

Was ist denn an Zahlen so besonders?

Naja, die Zahlen selbst sind nichts besonderes… Das besondere ist eher die Punktnotation von Javascript im Bezuf auf Objekte im Zusammenspiel mit zahlen. Das ganze lässt sich mit einem kleinen Quelltext-Beispiel vermutlich besser erklären:

"Test string".toString();
// "Test string"

[1,2,3].toString();
// "1,2,3"

123.toString();
// SyntaxError: Unexpected token ILLEGAL

Ein Syntax-Fehler? Moment, probieren wir erst mal eine andere Schreibweise aus…

"Test string"["toString"]();
// "Test string"

[1,2,3]["toString"]();
// "1,2,3"

123["toString"]();
// "123"

Und nun geht es plötzlich… Sehr merkwürdig, oder?

Die Ursache und mögliche Lösungen

Ich möchte euch natürlich erklären, wie es dazu kommen kann… Und ich denke ich kann es mit einer einzigen Zeile erläutern:

123.0.toString();
// "123"

Habt ihr es erkannt? Javascript geht davon aus, das wir eine Kommazahl (Float) verarbeiten möchten – So gesehen würde es sich tatsächlich um einen Syntax-Fehler handeln.
Aber keine Sorge: es gibt es noch andere Möglichkeiten, Zahlen zu verarbeiten… Doch nicht alle sehen auf den ersten Blick valide aus:

123.0.toString();
// Works.

123..toString();
// Works.

123 .toString();
// Works

(123).toString();
// Works.

var x = 123;
x.toString();
// Works.

Übrigens ist dies der erste Eintrag unter dem Namen „Basics“… Das ist eine neue Kategorie, in der ich eher simplere Themen ansprechen und vorführen möchte. Ich werde auch einige meiner alten Einträge in dieser Kategorie einordnen (wie z.B. auch SQL-Injection vorbeugen, Das Singleton Design Pattern, …).

Die Beiträge werden etwas kürzer ausfallen doch sollen vor allem Einsteigern weiterhelfen!

Mit diesen Worten möchte ich mich bereits verabschieden und wünsche euch allen eine erfolgreiche Woche!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.