← Назад к вопросам

Что такое шаблонная строка?

2.0 Middle🔥 161 комментариев
#JavaScript Core

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое шаблонная строка в JavaScript?

Шаблонная строка (template string) — это специальный синтаксис в JavaScript для создания строковых значений, введенный в ECMAScript 6 (ES6). Он представляет собой строковый литерал, заключенный в обратные кавычки (`), который позволяет использовать многострочные строки, интерполяцию переменных и выражений, а также поддерживает вложенные шаблоны. Это мощный инструмент, который значительно улучшает читаемость и удобство работы со строками в современном JavaScript.

Основные возможности шаблонных строк

1. Многострочные строки

В отличие от обычных строк, заключенных в одинарные или двойные кавычки, шаблонные строки автоматически сохраняют символы новой строки без необходимости использования специальных символов (например, \n).

// Обычная строка
const oldString = 'Первая строка\nВторая строка\nТретья строка';

// Шаблонная строка
const templateString = `Первая строка
Вторая строка
Третья строка`;

console.log(templateString);

2. Интерполяция выражений

Это одна из ключевых особенностей шаблонных строк. Внутри обратных кавычек можно использовать синтаксис ${} для вставки значений переменных или результатов выполнения выражений непосредственно в строку.

const name = 'Иван';
const age = 30;
const profession = 'Frontend Developer';

// Интерполяция переменных
const greeting = `Привет, ${name}!`;
console.log(greeting); // Привет, Иван!

// Интерполяция сложного выражения
const info = `Имя: ${name}, возраст: ${age}, профессия: ${profession}.`;
console.log(info);

// Можно использовать любые выражения
const calculation = `Сумма: ${10 + 20}`;
console.log(calculation); // Сумма: 30

// Интерполяция с функциями
const getFullName = (firstName, lastName) => `${firstName} ${lastName}`;
const fullName = `Полное имя: ${getFullName('Иван', 'Петров')}`;
console.log(fullName);

3. Tagged Templates (Шаблонные строки с обработчиком)

Это более продвинутая функциональность шаблонных строк. Она позволяет использовать функцию (обработчик) для предварительной обработки шаблонной строки и её выражений. Функция получает два массива: массив строковых частей и массив значений интерполяции.

function currencyFormatter(strings, ...values) {
  // strings: ["Цена товара: ", ", с НДС: ", ""]
  // values: [5000, 6000]
  return strings.reduce((result, str, index) => {
    const value = values[index] ? `${values[index]} руб.` : '';
    return result + str + value;
  }, '');
}

const price = 5000;
const priceWithTax = 6000;
const message = currencyFormatter(`Цена товара: ${price}, с НДС: ${priceWithTax}`);
console.log(message); // Цена товара: 5000 руб., с НДС: 6000 руб.

Tagged templates часто используются для:

  • Санитизации данных (например, предотвращение XSS-атак)
  • Интернационализации (i18n)
  • Стилизации (например, библиотеки styled-components в React)
  • Сложных преобразований формата

Преимущества шаблонных строк

  1. Улучшенная читаемость кода: Код с шаблонными строками гораздо легче читать и понимать, особенно при работе с многострочным содержимым или динамическими значениями.
  2. Упрощение работы с динамическими строками: Интерполяция устраняет необходимость в конкатенации строк с помощью оператора +, что делает код менее громоздким.
  3. Безопасность и удобство: Tagged templates позволяют контролировать обработку данных, что важно для безопасности веб-приложений.
  4. Гибкость: Можно легко комбинировать переменные, выражения и даже другие шаблонные строки внутри ${}.

Практические примеры использования

Шаблонные строки широко применяются в современном фронтенд-разработке:

// Генерация HTML-контента
const title = 'Добро пожаловать';
const items = ['Пункт 1', 'Пункт 2', 'Пункт 3'];
const html = `
<div class="container">
  <h1>${title}</h1>
  <ul>
    ${items.map(item => `<li>${item}</li>`).join('')}
  </ul>
</div>
`;

// Форматирование URL с параметрами
const apiUrl = 'https://api.example.com';
const userId = 123;
const endpoint = `${apiUrl}/users/${userId}/profile`;

// Создание сложных SQL-запросов (в Node.js)
const tableName = 'users';
const fields = ['name', 'email'];
const query = `
SELECT ${fields.join(', ')}
FROM ${tableName}
WHERE active = true;
`;

Заключение

Шаблонные строки — это не просто альтернатива обычным строковым литералам, а существенное улучшение языка JavaScript. Они предлагают элегантный и мощный способ работы со строковыми данными, делая код более чистым, безопасным и выразительным. Как фронтенд-разработчик, я постоянно использую шаблонные строки для генерации UI-компонентов, формирования API-запросов, создания динамических сообщений и многих других задач. Их понимание и правильное применение является важной частью профессионального мастерства в современной веб-разработке.

Что такое шаблонная строка? | PrepBro