Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: autoboxing, primitive, object wrapper, String, prototype

Что происходит под капотом при вызове метода на строковом примитиве?

Проверяет понимание механизма автоупаковки примитивов в объекты в JavaScript.

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

Когда вы вызываете метод на строковом примитиве, JavaScript временно оборачивает его в объект-обёртку (String). Этот объект имеет доступ к методам прототипа. После вызова метода обёртка уничтожается, и строка снова становится примитивом.

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

Автоупаковка примитивов

В JavaScript примитивы (строки, числа, булевы значения) не являются объектами и не имеют собственных методов. Однако вы можете вызывать методы, например 'hello'.toUpperCase(). Это возможно благодаря механизму автоупаковки (autoboxing).

Как это работает

Когда интерпретатор встречает вызов метода на примитиве, он создаёт временный объект-обёртку соответствующего типа (String, Number, Boolean). Этот объект наследует методы из прототипа. После выполнения метода обёртка немедленно удаляется, и переменная остаётся примитивом.

let str = 'hello';
console.log(str.toUpperCase()); // 'HELLO'
// Под капотом:
// 1. Создаётся new String('hello')
// 2. Вызывается метод toUpperCase() на этом объекте
// 3. Обёртка уничтожается

Практическое применение

Этот механизм позволяет использовать методы объектов на примитивах без явного преобразования. Однако стоит помнить, что обёртки создаются и уничтожаются каждый раз, что может влиять на производительность в циклах. В таких случаях лучше явно преобразовать примитив в объект один раз.

Вывод

Автоупаковка делает JavaScript более удобным, позволяя работать с примитивами как с объектами. Используйте это для вызова методов, но избегайте частого создания обёрток в критичных по производительности участках кода.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

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

#autoboxing

#primitive

#object wrapper

#String

#prototype

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию