Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: string concatenation, type coercion, immutability, JavaScript

Что происходит при конкатенации строк?

Вопрос проверяет понимание механизма конкатенации строк в JavaScript, включая преобразование типов и создание новых строковых объектов.

Короткий ответ

Конкатенация строк — это операция соединения двух или более строк в одну новую строку. В JavaScript для этого используется оператор '+' или метод concat(). При конкатенации с нестроковыми значениями они автоматически преобразуются в строки (происходит неявное приведение типов). Строки в JavaScript неизменяемы, поэтому каждая конкатенация создаёт новую строку в памяти, что может влиять на производительность при частых операциях.

Длинный ответ

Конкатенация строк — это фундаментальная операция в программировании, позволяющая объединять несколько строковых значений в одну результирующую строку. В JavaScript она часто используется для формирования динамического текста, путей, SQL-запросов (хотя для последнего лучше использовать параметризованные запросы) или HTML-разметки.

Как работает конкатенация в JavaScript

Основной оператор для конкатенации — плюс (+). Когда один из операндов является строкой, другой операнд (если он не строка) преобразуется в строку с помощью неявного приведения типов (type coercion). Это правило работает и для сложных выражений: вычисление идёт слева направо, и как только встречается строка, последующие операнды преобразуются в строки.

let result = 'Hello, ' + 'World!'; // 'Hello, World!'
let numAndStr = 5 + ' apples';    // '5 apples' (число 5 преобразовано в '5')
let mixed = 2 + 2 + ' apples';    // '4 apples' (сначала 2+2=4, потом 4 + ' apples')
let reversed = 'apples: ' + 2 + 2; // 'apples: 22' (после строки оба числа преобразуются в строки)

Альтернативные методы

Помимо оператора '+', можно использовать метод String.prototype.concat(), но он менее популярен. Также в современных версиях JavaScript для создания сложных строк с переменными удобно использовать шаблонные строки (template literals), которые позволяют встраивать выражения через ${expression}.

// Использование concat
let str = 'Hello'.concat(', ', 'World', '!'); // 'Hello, World!'

// Использование шаблонных строк (ES6+)
let name = 'Alice';
let greeting = `Hello, ${name}!`; // 'Hello, Alice!'

Производительность и неизменяемость

Строки в JavaScript являются примитивными неизменяемыми (immutable) значениями. Это означает, что любая операция, изменяющая строку (включая конкатенацию), на самом деле создаёт новую строку в памяти. При частой конкатенации в циклах это может привести к созданию множества промежуточных строк и снижению производительности. Для таких случаев лучше использовать массив и метод join().

// Неэффективно в цикле
let str = '';
for (let i = 0; i < 1000; i++) {
    str += 'x'; // Каждый раз создаётся новая строка
}

// Более эффективно
let parts = [];
for (let i = 0; i < 1000; i++) {
    parts.push('x');
}
let result = parts.join(''); // Конкатенация происходит один раз

Вывод: Конкатенация строк — простая, но важная операция. Используйте оператор '+' для простых случаев, шаблонные строки для удобства вставки переменных, а для массовой конкатенации в циклах предпочитайте массив с методом join() для оптимизации производительности.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#string concatenation

#type coercion

#immutability

#JavaScript

Подпишись на Java Developer в телеграм