Strings

Eine beliebige Zeichenfolge, wie Buchstaben, Zahlen, Symbole usw., zwischen einer Gruppe von Entweder doppelte Anführungszeichen ("), einfache Anführungszeichen (') oder Gravis (`) ist eine Zeichenfolgenprimitive. Sie haben bereits einige Beispiele für Strings in diesem Kurs: Die Instanzen von console.log im vorherigen Modul enthielten Primitiven von Zeichenfolgen.

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

"Hello, World." ist eine String-Primitive. Das Ergebnis ist dasselbe Ergebnis Anführungszeichen oder Gravis:

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 gleich; eines kann das andere enthalten als Zeichen in der Zeichenfolge selbst:

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

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

Eingeschlossene Zeichen, die im String identisch sind, schließen den String und führen wahrscheinlich zu Fehlern:

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

Um dies zu vermeiden, maskieren Sie das Zeichen mit einem umgekehrten Schrägstrich (/):

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

Stringobjekt

Wenn das String-Objekt als Funktion aufgerufen wird, wird ein bestimmter Wert in ein Stringliteral umgewandelt.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

Wie unter prototypisierte Übernahme beschrieben, werden Sie das String-Objekt nur selten als Konstruktor verwenden. Es wird eine Stringobjekt, das den angegebenen Wert sowie die Methoden und Eigenschaften, die bereits vom String-Objekt bereitgestellt werden, anstelle eines Stringliterals.

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

typeof stringObj
> object

stringObj
> String { "My new string." }

Verkettung

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

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

Stringliterale und Vorlagenliterale

Für das Erstellen von Stringprimitiven können einfache, doppelte und Backticks verwendet werden. Sie können jedoch auch Graviszeichen verwenden, um Vorlagenliterale (manchmal als "Vorlagenstrings" bezeichnet). Im Gegensatz zur String-Literale, die durch einfache oder doppelte Anführungszeichen erstellt werden, für 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 mit einem Dollarzeichen gekennzeichnet sind und geschweiften Klammern (${}). Diese Platzhalter werden „interpoliert“. werden standardmäßig Das bedeutet, dass das Ergebnis des Ausdrucks den Platzhalter im finalen .

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, also einen Funktionsaufruf, der eine einzige Vorlage verwendet -Literal als Satz von Argumenten und lässt seine Platzhalter basierend auf vom Autor definiert.

Das erste Argument einer Tag-Funktion enthält ein Array von Zeichenfolgenwerten und der Parameter Die verbleibenden Argumente definieren die Platzhalter. Dieses Array von Stringwerten ist erstellt durch „Aufteilen“ das Vorlagenliteral bei jedem darin enthaltenen Platzhalter. Das erste Element im Array enthält alle Zeichen bis zum ersten Platzhalter, das zweite Element alle Zeichen zwischen dem ersten und dem zweiten Platzhalter usw. Jeder Platzhalter wird als eigenständigen Wert mit einem zugehörigen Platzhalter.

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?

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

Welches Zeichen wird für die Verkettung verwendet?

&
+
.