Что такое шаблоны и строковые литералы в JavaScript?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Шаблонные литералы (или шаблонные строки) — это синтаксис для создания строк в JavaScript, который обеспечивает ряд преимуществ по сравнению с обычными строковыми литералами (с одинарными или двойными кавычками).
Ключевые особенности шаблонных литералов:
-
Многострочность без специальных символов: Можно создавать многострочные строки, просто перенося текст на новую строку внутри шаблонного литерала.
// Обычная строка с переносом const classicString = 'Строка 1\nСтрока 2'; // Шаблонная строка с переносом const templateString = `Строка 1 Строка 2`; -
Вложенные выражения: Позволяют включать выражения JavaScript непосредственно в строку с помощью синтаксиса
${выражение}. Результат выражения будет интерполирован (вставлен) в строку.const name = 'Мир'; const greeting = `Привет, ${name}!`; // greeting будет "Привет, Мир!" const sum = `Сумма 2 + 3 равна ${2 + 3}.`; // sum будет "Сумма 2 + 3 равна 5." -
Тегированные шаблоны: Расширенная возможность, позволяющая вызывать функцию (тег) перед обработкой шаблонного литерала. Функция получает массив строк и значения интерполированных выражений, что дает полный контроль над преобразованием строки.
function highlight(strings, ...values) { let result = ''; strings.forEach((str, i) => { result += str; if (values[i]) { result += `**${values[i]}**`; // Добавляем подсветку } }); return result; } const item = 'JavaScript'; const description = highlight`Изучаем ${item} сегодня!`; // description будет "Изучаем **JavaScript** сегодня!"
Обычные строковые литералы используют одинарные ('...') или двойные ("...") кавычки. Они просты и прямолинейны, но требуют использования маскирующих символов (\n для переноса строки, \' или \" для включения кавычек того же типа внутри строки) и конкатенации (+) для объединения переменных или выражений со строками.
Шаблонные литералы обозначаются обратными кавычками (`...`). Они значительно повышают читаемость кода при работе со строками, особенно при необходимости включения переменных или создании многострочного текста.