Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 42
3.3.2Escape-Sequenzen in String-Literalen
ОглавлениеDas Backslash-Zeichen (\) hat in JavaScript-Strings eine besondere Aufgabe. Gemeinsam mit dem nachfolgenden Zeichen repräsentiert es ein Zeichen, das auf andere Weise nicht im String dargestellt werden kann. Beispielsweise ist \n eine Escape-Sequenz, die ein Newline-Zeichen darstellt.
Ein weiteres, oben erwähntes Beispiel ist die Escape-Sequenz \', die ein einfaches Anführungszeichen (bzw. einen Apostroph) repräsentiert. Diese Escape-Sequenz ist hilfreich, wenn Sie einen Apostroph in ein String-Literal einschließen müssen, das von einfachen Anführungszeichen begrenzt wird. Escape-Sequenzen nutzen Sie, um die übliche Interpretation eines Zeichens zu verhindern. Deswegen spricht man auch davon, dass der Backslash das nachfolgende Zeichen (wie hier das einfache Anführungszeichen) maskiert. Er sorgt dafür, dass der Apostroph nicht als vorzeitiger Abschluss des Strings verstanden wird:
'You\'re right, it can\'t be a quote'
Tabelle 3-1 führt die Escape-Sequenzen von JavaScript und die durch sie dargestellten Zeichen auf. Drei Escape-Sequenzen sind generisch und können eingesetzt werden, um beliebige Zeichen anhand ihres-Unicode-Zeichencodes in hexadezimaler Form anzugeben. Beispielsweise stellt die Sequenz \xA9 das Copyright-Symbol mit der hexadezimalen Unicode-Codierung A9 dar. In ähnlicher Weise leitet \u ein beliebiges Unicode-Zeichen ein, das durch vier Hexadezimalziffern oder – wenn die Ziffern in geschweiften Klammern eingeschlossen sind – eine bis sechs Ziffern spezifiziert wird: \u03c0 steht zum Beispiel für das Zeichen π und \u{1f600} für das Emoji »Grinning Face«.
Tabelle 3-1: Escape-Sequenzen in JavaScript
Sequenz | Dargestelltes Zeichen |
\0 | NUL-Zeichen (\u0000) |
\b | Rücktaste (\u0008) |
\t | Tabulator (\u0009) |
\n | Zeilenvorschub (\u000A) |
\v | vertikaler Tabulator (\u000B) |
\f | Seitenvorschub (\u000C) |
\r | Wagenrücklauf (\u000D) |
\" | doppeltes Anführungszeichen (\u0022) |
\' | Apostroph oder einfaches Anführungszeichen (\u0027) |
\\ | Backslash (\u005C) |
\xnn | Unicode-Zeichen, das durch die hexadezimalen Ziffern nn angegeben wird |
\unnnn | Unicode-Zeichen, das durch die vier hexadezimalen Ziffern nnnn angegeben wird |
\u{n} | Unicode-Zeichen, das durch den Codepoint n angegeben wird, wobei n für eine bis sechs Hexadezimalziffern zwischen 0 und 10FFFF (ES6) steht |
Steht das \-Zeichen vor einem anderen Zeichen als den in Tabelle 3-1 aufgeführten, wird der Backslash einfach ignoriert (obwohl in zukünftigen Versionen der Sprache natürlich weitere, neue Escape-Sequenzen hinzukommen könnten). Beispielsweise ist \# das Gleiche wie #. Und wie bereits erwähnt, erlaubt ES5 einen Backslash vor einem Zeilenumbruch, damit ein String-Literal über mehrere Zeilen verteilt werden kann.