Что такое Typeof?
Основы языка
`typeof` — унарный оператор, возвращающий строку с типом операнда. Он используется для проверки типов, в основном примитивов.
Возвращаемые значения
typeof 42; // 'number'
typeof 'text'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof 10n; // 'bigint'
typeof Symbol(); // 'symbol'
typeof {}; // 'object'
typeof []; // 'object' (!)
typeof null; // 'object' (!) — историческая ошибка
typeof function(){};// 'function'Особые случаи
- `typeof null === 'object'` — известный баг, сохранён для обратной совместимости.
- Массив даёт
'object'— для проверки нуженArray.isArray(). - Функция — единственный не-примитив с собственным значением
'function'. - Необъявленная переменная —
typeof x === 'undefined'без ошибки (безопасная проверка существования).
Практика
if (typeof value === 'string') { /* ... */ }
if (typeof someGlobal !== 'undefined') { /* безопасно */ }Ограничения
typeof не различает объекты, массивы, null, Date. Для этого — Array.isArray, instanceof, Object.prototype.toString.call.
Коротко для собеседования
typeof возвращает строку с типом: 'number', 'string', 'boolean', 'undefined', 'bigint', 'symbol', 'function', 'object'. Ловушки: typeof null === 'object' и массив — 'object'. Для объектов используют Array.isArray/instanceof.