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"fortrueorfalse.
π‘ TIP:
typeofis a operator, not a function. This means, you do not need parenthesis for the argument. e.g.typeof 3is 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.