Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: typeof, instanceof, runtime type checking, type coercion

Какие проверки типов доступны во время runtime?

Вопрос проверяет понимание механизмов проверки типов данных во время выполнения программы в JavaScript.

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

В JavaScript во время выполнения доступны операторы typeof и instanceof. typeof возвращает строку с типом примитива, например 'string' или 'number'. instanceof проверяет, принадлежит ли объект к определённому классу или функции-конструктору. Также можно использовать Object.prototype.toString.call() для точного определения встроенных типов.

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

Проверка типов во время выполнения в JavaScript

JavaScript является языком с динамической типизацией, поэтому проверка типов во время выполнения (runtime) — важный инструмент для написания надёжного кода. Основные способы проверки типов включают операторы typeof и instanceof, а также метод Object.prototype.toString.call().

Оператор typeof

Оператор typeof возвращает строку, указывающую тип операнда. Он полезен для примитивных типов: 'undefined', 'boolean', 'number', 'string', 'bigint', 'symbol' и 'function'. Однако для объектов, массивов и null он возвращает 'object', что ограничивает его точность.

console.log(typeof 42); // 'number'
console.log(typeof 'hello'); // 'string'
console.log(typeof null); // 'object' — известная особенность
console.log(typeof []); // 'object'

Оператор instanceof

Оператор instanceof проверяет, принадлежит ли объект к определённому классу или функции-конструктору, просматривая цепочку прототипов. Он полезен для пользовательских классов и встроенных типов, таких как Array или Date.

const arr = [1, 2, 3];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true

class MyClass {}
const obj = new MyClass();
console.log(obj instanceof MyClass); // true

Метод Object.prototype.toString.call()

Для более точного определения встроенных типов (например, различения массива и объекта) используется Object.prototype.toString.call(). Он возвращает строку вида '[object Type]', где Type — внутреннее имя типа.

console.log(Object.prototype.toString.call([])); // '[object Array]'
console.log(Object.prototype.toString.call({})); // '[object Object]'
console.log(Object.prototype.toString.call(null)); // '[object Null]'

Вывод

Проверка типов во время выполнения необходима для обработки данных из ненадёжных источников, валидации аргументов функций и написания гибкого кода. Используйте typeof для примитивов, instanceof для объектов и классов, а Object.prototype.toString.call() для точного определения встроенных типов.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

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

#typeof

#instanceof

#runtime type checking

#type coercion

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию