typeof Operator Explained – What Is typeof in JavaScript?
The JavaScript typeof operator returns the data type of a specified operand.
Syntax of the typeof
Operator
The typeof
operator accepts one operand. Here's the syntax:
typeof operand;
The operand
represents a primitive or non-primitive value.
Example
// String typeof data:
typeof "CodeSweetly"; // Returns "string"
typeof `CodeSweetly ${new Date().getFullYear()}`; // Returns "string"
// Number typeof data:
typeof 123; // Returns "number"
typeof Infinity; // Returns "number"
typeof NaN; // Returns "number"
typeof new Date().getFullYear(); // Returns "number"
// Object typeof data:
typeof { name: "Oluwatobi", company: "CodeSweetly" }; // Returns "object"
typeof ["Oluwatobi", "CodeSweetly"]; // Returns "object"
typeof null; // Returns "object"
typeof new Date(); // Returns "object"
// Undefined typeof data:
typeof undefined; // Returns "undefined"
typeof undeclaredVariable; // Returns "undefined"
let variableDeclaredWithNoAssignedValue;
typeof variableDeclaredWithNoAssignedValue; // Returns "undefined"
// Function typeof data:
typeof function getMyType() {}; // Returns "function"
typeof Math.random; // Returns "function"
typeof "Oluwatobi".constructor; // Returns "function"
// Boolean typeof data:
typeof true; // Returns "boolean"
typeof false; // Returns "boolean"
// BigInt typeof data:
typeof 123n; // Returns "bigint"
typeof 9n; // Returns "bigint"
The snippet above used the typeof
operator to return the data types of the specified values.
Important Stuff to Know about the typeof
Operator
typeof null === object
is a bug from JavaScript's first version.- The
typeof
operator has higher precedence than ternary or binary operators. Therefore, you need parentheses to evaluate non-unary operands correctly. For instance, consider the following snippet:
typeof true + "Love"; // Returns "booleanLove"
typeof (true + "Love"); // Returns "string"
typeof 7 > 5 ? "Correct!" : false; // Returns false
typeof 7 < 5 ? "Correct!" : false; // Returns false
typeof (7 > 5 ? "Correct!" : false); // Returns "string"
typeof (7 < 5 ? "Correct!" : false); // Returns "boolean"
The snippet above returned the correct results only where we used parentheses to evaluate the binary and ternary operators.
Overview
This article used examples to discuss the typeof
operator and how it works.