Sie sind hier 295
Typen, Gleichheit, Umwandlung und der ganze Rest
Strings, die gleichzeitig primitive
Datentypen und Objekte sind
Warum ist ein String einmal ein primitiver Datentyp und ein anderes Mal ein
Objekt? Weil JavaScript beides unterstützt. JavaScript kann Strings als primitive
Datentypen erzeugen oder als Objekt (wodurch eine Menge nützlicher String-
Bearbeitungsfunktionen bereitstehen). Bisher haben wir noch nicht gezeigt, wie
man ein String-Objekt erzeugt. In den meisten Fällen ist das auch nicht explizit
nötig, weil der JavaScript-Interpreter die String-Objekte bei Bedarf für Sie bereitstellt.
Aber wo und warum sollte man das tun? Sehen wir uns das Leben eines Strings
mal an:
var name = "Jenny";
var phone = "867-5309";
var fact = "Dies ist eine Primzahl";
var songName = phone + "/" + name;
var index = phone.indexOf("-");
if (fact.substring(14, 18) === "Prim") {
alert(fact);
}
Hier haben wir drei primitive
Strings angelegt und Variablen
zugewiesen.
Und hier verketten wir ein
paar Strings, um daraus
einen weiteren primitiven
String zu erzeugen.
Hier verwenden wir eine
Methode. An dieser Stelle
konvertiert JavaScript phone
hinter den Kulissen in ein
String-Objekt.
Genauso wird der String
fact, um die Methode
substring nutzen zu können,
in ein Objekt umgewandelt.
Und hier benutzen
wir fact erneut.
An dieser Stelle
wird kein Objekt
gebraucht, und der
String ist wieder ein
primitiver Datentyp.
LANGWEILIGER PRIMITIVER DATENTYP
OBJEKT MIT SUPERKRÄFTEN
296 Kapitel 7
Fragen zu Strings
Das ist ziemlich verwirrend. Mein
String wird zwischen einem primitiven
Datentyp und einem Objekt hin- und
herkonvertiert? Wie soll ich das bloß
alles im Auge behalten?
Stellen Sie sich Ihre Strings einfach als Objekte vor, gut gefüllt
mit Methoden, die Ihnen bei der Bearbeitung des enthaltenen
Texts helfen. JavaScript kümmert sich um die Details. Sehen Sie
es einmal so: Sie haben jetzt ein besseres Verständnis davon, was
JavaScript unter der Haube so treibt. Dennoch können Sie sich
bei Ihrer täglichen Programmierarbeit einfach darauf verlassen,
dass JavaScript schon alles richtig macht (und das tut es).
F:
Nur um sicher zu sein: Muss ich
mich jemals darum kümmern, wann ein
String ein primitiver Datentyp ist und
wann ein Objekt?
A: Meistens ist das nicht nötig. Der
JavaScript-Interpreter führt die Umwand-
lungen für Sie aus. Schreiben Sie einfach
Ihren Code und gehen Sie davon aus, dass
ein String die Objekteigenschaften und
-methoden unterstützt und dass wie erwartet
alles funktioniert.
F:
Warum unterstützt JavaScript einen
String als primitiven Datentyp und als
Objekt?
A: Stellen Sie sich das so vor: Solange
Sie nur einfache String-Operationen (Ver-
gleiche, Verkettungen, den String ins DOM
schreiben usw.) durchführen, haben Sie die
Effizienz eines primitiven String-Datentyps.
Sobald Sie ausgefeiltere String-Bearbeitungen
durchführen müssen, steht Ihnen das String-
Objekt sofort zur Verfügung.
F:
Wie stelle fest, ob irgendein String
gerade ein Objekt oder ein primitiver
Datentyp ist?
A: Zunächst ist ein String immer ein pri-
mitiver Datentyp, es sei denn, Sie erzeugen
ihn mit einem speziellen Objektkonstruktor.
Über Objektkonstruktoren werden wir später
noch sprechen. Zudem können Sie Ihre
Variable jederzeit mit dem typeof-Operator
überprüfen, um zu sehen, ob der Rückgabe-
wert string oder object ist.
F:
Können sich andere primitive Daten-
typen auch wie Objekte verhalten?
A: Ja, auch Zahlen und Boolesche Werte
können gelegentlich als Objekte auftreten.
Allerdings hat keins von beiden so viele nütz-
liche Eigenschaften wie Strings. Sie werden
diese Möglichkeit also deutlich seltener
nutzen. Und vergessen Sie nicht: Das
passiert alles im Hintergrund, sodass
Sie sich kaum Gedanken darum machen
müssen. Verwenden Sie bei Bedarf einfach
eine Eigenschaft und lassen Sie JavaScript
die temporären Umwandlungen für sich
erledigen.
F:
Wie kann ich sämtliche Methoden
und Eigenschaften kennen, die für String-
Objekte zur Verfügung stehen?
A: Dafür ist eine gute Referenz hilfreich.
Viele davon stehen online zur Verfügung.
Wenn Sie lieber ein Buch lesen, empfehlen
wir Ihnen JavaScript: Das umfassende Refe-
renzwerk (O'Reilly) von David Flannagan mit
Informationen zu allen String-Eigenschaften
und -Methoden. Google funktioniert übrigens
auch ganz gut.
Es gibt keine
Dummen Fragen

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.