PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое 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.

Другие вопросы раздела