Боксинг та анбоксинг у JavaScript
Боксинг та Розбоксинг — це процеси автоматичної конверсії примітивних типів даних в об'єктні обгортки і назад. Ці процеси відбуваються неявно в JavaScript, коли ви працюєте з методами та властивостями примітивів.
Що таке Боксинг?
Боксинг — це обгортання примітиву в об'єкт, щоб ви могли використовувати методи та пропси об'єкта.
Наприклад, рядок str = "hello" є примітивом. Але ви все ще можете викликати метод str.toUpperCase():
const str = "hello";
console.log(str.toUpperCase()); // "HELLO"Як це працює?
Під капотом відбувається наступне:
const str = "hello";
const temp = new String(str); // Боксинг: примітив → об'єкт String
console.log(temp.toUpperCase()); // викликається метод об'єкта
// temp видаляється, результат повертаєтьсяТе ж саме працює для Number, Boolean, Symbol та інших примітивів:
const num = 42;
console.log(num.toFixed(2)); // "42.00" — примітив перетворюється в об'єкт NumberЩо таке Розбоксинг?
Розбоксинг — це зворотний процес: витягування примітивного значення з об'єктної обгортки.
Приклад:
const numObj = new Number(123); // об'єкт
const primitive = numObj.valueOf(); // Розбоксинг
console.log(typeof primitive); // "number"Метод valueOf() використовується JavaScript-движком для отримання чистого примітивного значення з об'єктної обгортки.
Типи об'єктних обгорток
| Примітив | Об'єктна обгортка |
|---|---|
string | String |
number | Number |
boolean | Boolean |
symbol | Symbol |
bigint | BigInt |
Підсумок:
Боксинг і Розбоксинг відбуваються автоматично в JavaScript. Вам не потрібно вручну конвертувати примітиви в об'єкти — JavaScript робить це за вас, коли це необхідно.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.