#вопросы_с_собеседований

Что такое объектная обертка (Wrapper Objects)?



Примитивы строка, число и boolean имеют свойства и методы, несмотря на то, что они не являются объектами:



let name = 'vasya'



console.log(typeof name) // string

console.log(name.toUpperCase()) // VASYA



name — это строка (примитивный тип), у которого нет свойств и методов, но когда мы вызываем метод toUpperCase(), это приводит не к ошибке, а к «VASYA».



Причина такого поведения заключается в том, что name временно преобразуется в объект. У каждого примитива, кроме null и undefined, есть объект-обертка. Такими объектами являются String, Number, Boolean, Symbol и BigInt. В нашем случае код принимает вид:



console.log(new String(name).toUpperCase()) // VASYA



Временный объект отбрасывается по завершении работы со свойством или методом.