Использование оператора typeof в JavaScript

В этом руководстве вы узнаете, как использовать оператор typeof в JavaScript, который возвращает строку, представляющую тип значения.

Оператор typeof принимает операнд и возвращает строку, представляющую тип операнда. Синтаксис:

typeof(operand)

В этом синтаксисе operand может быть значением, переменной или выражением. В качестве альтернативы вы можете использовать оператор typeof без круглых скобок следующим образом:

typeof operand

Обратите внимание, что если operand является выражением, вам нужно использовать круглые скобки, чтобы сделать синтаксис допустимым.

Примеры typeof

В следующем примере показано, как использовать оператор typeof со значениями различных типов:

let type;

type = typeof 'Hi';
console.log(type); // 'string'

type = typeof 100;
console.log(type); // 'number'

type = typeof 100n;
console.log(type); // 'bigint'

type = typeof false;
console.log(type); // 'boolean'

type = typeof Symbol('morning');
console.log(type); // 'symbol'


type = typeof undefined;
console.log(type); // 'undefined'


type = typeof new Date();
console.log(type); // 'object'

В JavaScript null — это примитивное значение нулевого типа. Однако его тип не нулевой, а объектный, потому что JavaScript рассматривает нуль как пустой объект:

type = typeof null;
console.log(type); // 'object'

Технически JavaScript рассматривает функции как объекты. Следовательно, их типы — 'object'. Однако у функций есть некоторые особые свойства, JavaScript должен различать функции и другие объекты с помощью оператора typeof. Например:

function add(x, y) {
  return x + y;
}

let type = typeof add;
console.log(type); // 'function';

Оператор и круглые скобки

При передаче выражения оператору typeof необходимо использовать круглые скобки. Например:

let type = typeof(100 + '10');
console.log(type);

Выход:

'string'

В этом примере выражение 100 + '10' возвращает строку '10010'. Следовательно, его тип — 'string'. Если вы не используете круглые скобки, вы получите неожиданный результат. Например:

let type = typeof 100 + '10';
console.log(type);

Выход:

'number10'

В этом примере typeof 100 возвращает 'number'. Таким образом, результатом является строка, представляющая собой конкатенацию строк 'number' и '10'.

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript