String

Eine beliebige Gruppe von Zeichen (Buchstaben, Zahlen, Symbole usw.) zwischen einem Satz von doppelten Anführungszeichen ("), einfachen Anführungszeichen (') oder Graviszeichen (`) ist eine String-Primitive. In diesem Kurs haben Sie bereits einige Beispiele für Strings gesehen: Die Instanzen von console.log im vorherigen Modul enthielten String-Primitive.

console.log( "Hello, World." );
> Hello, World.

"Hello, World." ist eine String-Primitive. Mit einfachen Anführungszeichen oder Backticks erhalten Sie dasselbe Ergebnis:

console.log( 'Hello, World.' );
> Hello, World.

console.log(`Hello, World.`);
> Hello, World.

Eine Reihe von Zeichen in Anführungszeichen wird als Stringliteral bezeichnet. Doppelte und einfache Anführungszeichen verhalten sich auf die gleiche Weise, wobei eines das andere als Zeichen im String selbst enthalten kann:

console.log( "I'm a string." );
> I'm a string.

console.log( '"A string," I said.' );
> "A string," I said.

Eine Instanz desselben umschließenden Zeichens innerhalb des Strings „schließt“ den String, was wahrscheinlich Fehler verursacht:

console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list

Um dies zu vermeiden, verwenden Sie einen umgekehrten Schrägstrich (``) als Escapezeichen für das Zeichen:

console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.

Stringobjekt

Wenn das String-Objekt als Funktion aufgerufen wird, erzwingt es einen angegebenen Wert in ein Stringliteral.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

Wie unter prototypische Übernahme beschrieben, müssen Sie das Objekt String selten als Konstruktor verwenden. Anstelle eines String-Literals wird ein String-Objekt erstellt, das den angegebenen Wert sowie die Methoden und Eigenschaften enthält, die bereits im String-Objekt verfügbar sind.

let stringObj = new String( "My new string." );

typeof stringObj
> object

stringObj
> String { "My new string." }

Verkettung

Wenn es im Kontext von Strings statt Zahlen verwendet wird, fungiert ein einzelnes Pluszeichen (+) als Verkettungsoperator und kombiniert mehrere Stringwerte zu einem einzigen String:

console.log( "My" + " string." );
> My string.

String- und Vorlagenliterale

Einfache Anführungszeichen, doppelte Anführungszeichen und Graviszeichen können zum Erstellen von String-Primitiven austauschbar verwendet werden. Sie können jedoch auch Graviszeichen verwenden, um Vorlagenliterale (manchmal als „Vorlagenstrings“ bezeichnet) anzugeben. Im Gegensatz zu Stringliteralen, die aus einfachen oder doppelten Anführungszeichen erstellt werden, ermöglichen Vorlagenliterale mehrzeilige Strings und Stringinterpolation.

const myString = "This
is a string.";
> Uncaught SyntaxError: "" string literal contains an unescaped line break

const myString = `This
is a string.`;

console.log( myString );

> This
is a string.

Vorlagenliterale können Platzhalterausdrücke enthalten, die durch ein Dollarzeichen und geschweifte Klammern (${}) gekennzeichnet sind. Diese Platzhalter werden standardmäßig „interpoliert“, was bedeutet, dass das Ergebnis des Ausdrucks den Platzhalter im endgültigen String ersetzt.

console.log( "The result is " + ( 2 + 4 ) + "." );
> The result is 6.
console.log( `The result is ${ 2 + 4 }.` );
> The result is 6.

Ein Vorlagenliteral kann an eine benutzerdefinierte Funktion übergeben werden, um eine getaggte Vorlage zu erstellen. Dies ist ein Funktionsaufruf, der ein einzelnes Vorlagenliteral als eine Reihe von Argumenten verwendet und die Platzhalter anhand der vom Autor definierten Logik gefüllt werden lässt.

Das erste Argument einer Tag-Funktion enthält ein Array von Stringwerten und die verbleibenden Argumente definieren die Platzhalter. Dieses Array von Stringwerten wird erstellt, indem das Vorlagenliteral bei jedem darin enthaltenen Platzhalter „aufgeteilt“ wird. Das erste Element im Array enthält alle Zeichen bis zum ersten Platzhalter, das zweite Element enthält alle Zeichen zwischen dem ersten und zweiten Platzhalter und so weiter. Jeder Platzhalter wird als eigenständiger Wert mit einem zugehörigen Platzhalter an die Tag-Funktion übergeben.

const myNoun = "template literal";

function myTagFunction( myStrings, myPlaceholder ) {
    const myInitialString = myStrings[ 0 ];
    console.log( `${ myInitialString }modified ${ myPlaceholder }.` );
}

myTagFunction`I'm a ${ myNoun }.`;
> "I'm a modified template literal."

Wissen testen

Welches Zeichen wird verwendet, um Zeichen zu maskieren?

Ein umgekehrter Schrägstrich ()
Ein doppeltes Anführungszeichen (")
Ein Schrägstrich (/)

Welches Zeichen wird für die Verkettung verwendet?

+
&
.