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?
∖
)"
)/
)Welches Zeichen wird für die Verkettung verwendet?
+
&
.