Вопрос проверяет понимание механизмов проверки типов данных во время выполнения программы в JavaScript.
JavaScript является языком с динамической типизацией, поэтому проверка типов во время выполнения (runtime) — важный инструмент для написания надёжного кода. Основные способы проверки типов включают операторы typeof и instanceof, а также метод Object.prototype.toString.call().
Оператор 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 проверяет, принадлежит ли объект к определённому классу или функции-конструктору, просматривая цепочку прототипов. Он полезен для пользовательских классов и встроенных типов, таких как 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 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
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию