Middle
71
questionbank

Что такое боксинг в контексте JavaScript?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

В JavaScript "боксинг" (boxing) — это процесс автоматического преобразования примитивного значения (например, строки, числа, булевого значения) во временный объект-обертку (wrapper object) соответствующего встроенного конструктора (String, Number, Boolean) при попытке доступа к его свойствам или методам.

Это происходит, когда вы обращаетесь к свойству или методу примитива, как если бы он был объектом. JavaScript временно создает объект-обертку, выполняет операцию с этим объектом, а затем уничтожает его.

Примеры:

javascript

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

Боксинг происходит неявно. Вы не создаете объект-обертку явно (хотя это возможно с помощью new String(), new Number(), new Boolean(), но это не рекомендуется).

Различия между примитивами и объектами-обертками:

ПримитивОбъект-обертка
ТипСтрока, Число, Булев, Symbol, Null, Undefined, BigIntСсылка на объект
ИзменчивостьНеизменяемыйИзменяемый
СравнениеСравнение по значениюСравнение по ссылке
СозданиеЛитерал, typeof возвращает примитивный типnew, typeof возвращает 'object'