Videos eBook Forum Kontakt

jetzt Videos kaufen
zum Lernen von HTML,
CSS und Webdesign

Jetzt das HTML-Seminar bestellen als
Video-Tutorial mit über 210 Videos:
von den Grundlagen bis zur fertigen Website
Video-Kurs HTML5, CSS & Webdesign

Video-Kurs bestellen HTML5, CSS & Webdesign
Video-Kurs bestellen HTML5, CSS & Webdesign

Strings und JavaScript

In JavaScript werden Textdaten in einem String gespeichert. Im Gegensatz zu anderen Programmiersprachen gibt es in JavaScript keinen zusätzlichen Datentypen wie Beispielsweise für 1-stellige Zeichen.

UTF-16 ist das interne Format in JavaScript für die Speicherung von Strings. Wichtig: es ist nicht an die Seiten-Zeichenkodierung (encoding) gebunden. Es ist also egal, ob eine Website im Header „ISO-8859-1“ oder „UTF-8“ angibt. JavaScript nutzt immer UTF-16.

Grundsätzlicher Aufbau von Strings

Strings werden einer Variablen zugewiesen. Dies kann über das altbekannte var oder über let geschehen. Nach dem Gleichzeichen kommen Anführungszeichen:

var x = "JavaScript-Kurs.de";
var y = 'JavaScript-Kurs.de';
var z = `JavaScript-Kurs.de`;

Jetzt haben wir im obigen Beispiel 3 verschiedene Anführungszeichen genutzt – und die gute Nachricht ist: alle 3 funktionieren problemlos. Aber was ist der Unterschied?

Einfache und doppelte Anführungszeichen sind in der Nutzung identisch. Es darf keinen Umbruch in die Nächste Zeile geben, sonst wirf JavaScript mit Fehlermeldungen um sich!

Invertierte Hochkommas bzw. rückwärts geneigte Hochkommas (englisch „backticks“) sind die modernste Form von Anführungszeichen. So sperrig wie das deutsche Wort ist, desto klarer ist eigentlich die Aussage – man nehme ein normales Komma (hier ist die Schreibrichtung für jeden klar), stelle das hoch und spiegele dieses einfach – und schon haben wir ein invertiertes Hochkomma. Bei den „Backticks“ haben wir den Vorteil, dass auch ein Umbruch zwischen den invertierten Hochkommas erfolgen kann, ohne dass sich JavaScript mit einem Fehler beschwert.

var z = `JavaScript-Kurs.de
zum 
lernen von JavaScript`;

Aber wie könnten wir einen Umbruch bei der althergebrachten Art von Anführungszeichen mitgeben und noch gleich die zweite Frage: wie könnte man ein Anführungszeichen, das ausgegeben wird mit in einen String als Inhalt packen?

Es gibt die Möglichkeit besondere Zeichen, wie die verschiedenen Anführungszeichen, zu „maskieren“. So nennt sich diese Technik. Vor dem „Problemzeichen“ wird einfach ein Backslash getippt und alles ist gut. Möchte man also ein Anführungszeichen in einem String als Inhalt speichern, einfach ein \" eintippen:

var x = "Heute ist ein \"toller\" Tag";

Und somit haben wir als Ausgabe (wenn wir den String ausgeben lassen):

Heute ist ein "toller" Tag

Soll ein Backslash selber ausgegeben werden, dann vor dem Backslash einen Backslash bringen:

Code Ergebnis Beschreibung
\" " doppeltes Anführungszeichen
\' ' einfaches Anführungszeichen
\\ \ Backslash

Lange Zeilen umbrechen

Programmiere haben sehr ungern in ihrem Programmcode Zeilenlängen mit mehr als 80 Zeichen. Passt also ein JavaScript-Anweisung nicht in eine Linie und soll umgebrochen werden, dann gibt es verschiedene Möglichkeiten.

Umbruch nach einem Operator:

document.getElementById("ausgabe").innerHTML =
   "Hallo Welt";

Oder einfach die Ausgabe mit „+“ verknüpfen.

document.getElementById("ausgabe").innerHTML = "Hallo " +
   "Welt";

Nicht empfehlenswert ist am Ende ein Backslash „\“ – in einigen Browsern funktioniert das – allerdings gibt es keine flächendeckende Unterstützung. Also eine blöde Idee, diese Variante zu verwenden.

document.getElementById("ausgabe").innerHTML = "Hallo \
Welt";

Strings haben Eigenschaften und Methoden

Strings haben Eigenschaften und Methoden. Eine der bekanntesten Eigenschaften ist die Zeichenlänge. Im folgenden Beispiel wird die Zeichenlänge von dem String „x“ ermittelt und in einem weiteren String gespeichert. Warum wird dieser extra in einem neuen String gespeichert und nicht direkt ausgegeben? Aus didaktischen Gründen. So sieht man am besten den Aufbau der Anweisung length:

var x = "Hallo Welt";
var laenge = x.length;
alert (laenge);

Wichtig: keine runden Klammern nach der Eigenschaft „length“ – warum? Es ist eine Eigenschaft und keine Methode oder Funktion!

Mehr in einem folgenden Kapitel.