What does typeof operator do?

JavaScriptThoughtspot

typeof operator

The typeof operator in JavaScript returns a string indicating the data type of an operand. Let me break down how it works with different types:

// Numbers (regular and NaN)
typeof 42; // "number"
typeof 3.14; // "number"
typeof NaN; // "number"

// Strings
typeof 'hello'; // "string"
typeof ''; // "string"

// Booleans
typeof true; // "boolean"
typeof false; // "boolean"

// Undefined
typeof undefined; // "undefined"

// Objects and null
typeof {}; // "object"
typeof null; // "object" (this is a known JavaScript quirk)
typeof []; // "object" (arrays are objects in JavaScript)

// Functions
typeof function () {}; // "function"

// Symbol (added in ES6)
typeof Symbol(); // "symbol"

// BigInt (added in ES2020)
typeof 42n; // "bigint"

There are a few important gotchas to be aware of:

  • typeof null returns "object", which is a historical bug in JavaScript
  • Arrays are considered objects, so typeof [] returns "object"
  • You can use typeof on undeclared variables without causing an error, it will return "undefined"

The operator is particularly useful for type checking and defensive programming, like checking if a variable exists before using it:

if (typeof someVariable !== 'undefined') {
// safe to use someVariable
}
00:00

Table of Contents