JS: typeof Operator
typeof value
-
Return a string that represents the Type of value.
Return one of:
"object"
for Object or null."function"
for function."string"
for string."number"
for number, including NaN and Infinity"bigint"
for bigint."undefined"
for undefined."boolean"
fortrue
orfalse
.
π‘ TIP:
typeof
is a operator, not a function. This means, you do not need parenthesis for the argument. e.g.typeof 3
is valid. Use parenthesistypeof(expr)
only when expr is complicated.console.log(typeof undefined === "undefined"); console.log(typeof "abc" === "string"); console.log(typeof true === "boolean"); console.log(typeof false === "boolean"); console.log(typeof 3 === "number"); console.log(typeof NaN === "number"); console.log(typeof Infinity === "number"); console.log(typeof 3n === "bigint");
// type of some standard objects console.log(typeof {} === "object"); console.log(typeof [3, 4] === "object"); console.log(typeof (new Date()) === "object"); console.log(typeof /x/ === "object"); console.log(typeof JSON === "object"); console.log(typeof Math === "object"); console.log(typeof new Map() === "object");
console.log(typeof (function () {}) === "function"); console.log(typeof ((x) => x) === "function"); console.log(typeof class MyClass {} === "function");
Null is Not an Object
π WARNING:
typeof null
return "object"
is a bug and we are stuck with it. (it should return "null"
) γsee nullγ
Function is Also Object
π WARNING:
by JavaScript spec, there is no value type named βfunctionβ. typeof
return "function"
is a programing convenience.