Проверяет понимание механизма автоупаковки примитивов в объекты в JavaScript.
В 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
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию