В этом руководстве вы узнаете, как использовать оператор 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'.
