Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: примитивы, объекты

Откуда у примитивов взялись методы и свойства?

Этот вопрос проверяет понимание того, как JavaScript обрабатывает примитивные типы, такие как строки, числа и булевы значения, и почему они могут иметь методы, несмотря на то, что они не являются объектами.

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

В JavaScript примитивы, такие как строки, числа и булевы значения, временно оборачиваются в соответствующие объектные типы (String, Number, Boolean) при доступе к их методам. Эти объекты дают доступ к методам и свойствам, после чего примитив снова превращается в своё оригинальное значение.

Длинный ответ

Хотя примитивы в JavaScript, такие как числа, строки и булевы значения, не являются объектами, они ведут себя так, как будто у них есть методы и свойства. Это происходит благодаря механизму, называемому "автоматической обёрткой" (autoboxing). Когда вы вызываете метод у примитива, JavaScript автоматически создает временный объект соответствующего типа.

Например:

let str = 'hello'; console.log(str.toUpperCase()); // 'HELLO'

В этом примере str является примитивной строкой, но при вызове метода toUpperCase() JavaScript за кулисами создает временный объект типа String, на котором этот метод выполняется. После завершения вызова объект уничтожается, и переменная str снова становится обычной строкой.

Этот механизм работает для всех примитивов:

  • Строки оборачиваются в объекты String.

  • Числа — в объекты Number.

  • Булевы значения — в объекты Boolean.

Объекты-примитивы дают доступ к таким методам, как toUpperCase() для строк, toFixed() для чисел и другим методам, которые в противном случае не были бы доступны для примитивов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#примитивы

#объекты

Подпишись на React Developer в телеграм