Ответ
Boxing — это процесс преобразования примитивного типа данных в его объектную обёртку (например, number в Number). В JavaScript это происходит автоматически при вызове методов у примитивов, так как они не являются объектами и не могут иметь методов.
let num = 42; // примитив
let str = 'hello'; // примитив
// Автоматический boxing при вызове метода
console.log(num.toString()); // '42' — временно преобразуется в Number
console.log(str.toUpperCase()); // 'HELLO' — временно преобразуется в String
После выполнения операции объект-обёртка удаляется. Это отличается от явного создания объекта через конструктор (new Number(42)), который создаёт полноценный объект.
Ответ 18+ 🔞
Так, слушай, смотри, есть тут такая хуйня — boxing. Ну, не та, где по морде бьют, а в программировании. Суть проще пареной репы: берёшь примитив, какой-нибудь голый number или string, и натягиваешь на него объектную обёртку, чтобы с ним как с объектом можно было работать. В JavaScript это вообще магия какая-то, потому что происходит само, нахуй, без твоего ведома.
Вот смотри, живые примеры, чтобы мозг не взорвался:
let num = 42; // просто циферка, примитив, голый как сокол
let str = 'hello'; // строка, тоже примитив, нихуя не объект
// А тут начинается магия, ёпта!
console.log(num.toString()); // '42' — а откуда у циферки метод? Boxing, сука! Временный объект Number натянули, вызвали метод и выкинули.
console.log(str.toUpperCase()); // 'HELLO' — та же хуйня, но со строкой. Временный объект String, поработали и в утиль.
После этого шаманства объект-обёртка летит в мусорку, и всё возвращается к примитивам. Это не то же самое, если бы ты вручную создал объект через new Number(42) — тут уже будет полноценный, увесистый объект, который и память жрёт, и сравниваться с примитивом не хочет. А автоматический boxing — он как одноразовый скафандр: надел, поработал, выбросил, и никаких хлопот.