Как работает обращение к свойству или методу строки, например `length`, если строка — примитив?

При доступе к свойствам строкового примитива JavaScript использует объектную семантику обёртки String; сама переменная остаётся примитивом.

Короткий ответ

Что ответить на собеседовании

При доступе к свойствам строкового примитива JavaScript использует объектную семантику обёртки String; сама переменная остаётся примитивом.

Подробный разбор

Ответ с пояснениями

При доступе к свойствам строкового примитива JavaScript использует объектную семантику обёртки String; сама переменная остаётся примитивом.

Поэтому 'abc'.length возвращает 3, а методы находятся через String.prototype. Создавать new String() для этого не нужно. Присваивание собственного свойства примитиву не превращает строку в изменяемый объект: в strict mode оно может завершиться ошибкой, вне strict — не сохраниться.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее