- Template literals — строки в обратных кавычках с интерполяцией:
`Hello, ${name}!` — подстановка выражений
- Поддерживают многострочность без
\n
- Tagged templates — функция, обрабатывающая template literal:
function html(strings, ...values) {
return strings.reduce((result, str, i) =>
result + str + (values[i] !== undefined ? escapeHtml(values[i]) : ''), '');
}
html`<p>${userInput}</p>` // экранирует userInput
strings — массив строковых частей (с .raw для необработанных строк)
- Применения: санитизация HTML, CSS-in-JS (styled-components), i18n, SQL-запросы