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