Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 44

3.3.4Template-Literale

Оглавление

In ES6 und höher können String-Literale durch Backticks eingefasst bzw. begrenzt werden:

let s = `hello world`;

Dies ist jedoch mehr als nur eine alternative Syntax für String-Literale, da diese Template-Literale beliebige JavaScript-Ausdrücke enthalten können. Der endgültige Wert eines String-Literals, das von Backticks begrenzt ist, wird berechnet, indem alle enthaltenen Ausdrücke ausgewertet, die Werte dieser Ausdrücke in Strings konvertiert und diese berechneten Strings mit den Literalzeichen innerhalb der Backticks kombiniert werden:

let name = "Bill";

let greeting = `Hello ${ name }.`; // greeting == "Hello Bill."

Alles zwischen ${ und } wird als JavaScript-Ausdruck interpretiert. Alles außerhalb der geschweiften Klammern ist normaler String-Text. Der Ausdruck innerhalb der Klammern wird ausgewertet, in eine Zeichenfolge umgewandelt und in das Template eingefügt, wobei das Dollarzeichen, die geschweiften Klammern und alles dazwischen ersetzt werden.

Ein Template-Literal kann eine beliebige Anzahl von Ausdrücken enthalten. Es dürfen alle Escape-Zeichen verwendet werden, die auch in normalen Zeichenfolgen erlaubt sind, und ein Template-Literal kann eine beliebige Anzahl von Zeilen umfassen, ohne dass dazu spezielle Escape-Zeichen erforderlich sind. Das folgende Template-Literal enthält vier JavaScript-Ausdrücke, eine Unicode-Escape-Sequenz und mindestens vier Zeilenumbrüche (die Ausdruckswerte können ebenfalls Zeilenumbrüche enthalten):

let errorMessage = `\

\u2718 Test failure at ${filename}:${linenumber}:

${exception.message}

Stack trace:

${exception.stack}

`;

Der Backslash am Ende der ersten Zeile maskiert hier den ersten Zeilenumbruch, sodass der resultierende String mit dem Unicode-Zeichen (\u2718) anstelle eines Zeilenumbruchs beginnt.

JavaScript  –  Das Handbuch für die Praxis

Подняться наверх