Syntax
typeof value
object instanceof ConstructorExamples
typeof for Primitive Types
Checking the type of simple values.
console.log(typeof "hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined);// "undefined"
console.log(typeof function(){}); // "function"
console.log(typeof {}); // "object"
console.log(typeof []); // "object" - arrays are objects too, typeof cannot distinguish theminstanceof for Object Types
Distinguishing between different kinds of objects.
const arr = [1, 2, 3];
const date = new Date();
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true - arrays are also objects
console.log(date instanceof Date); // true
console.log(date instanceof Array); // false
class Dog {}
const rex = new Dog();
console.log(rex instanceof Dog); // trueBest practices
- Use typeof for primitives (string, number, boolean, etc.) and Array.isArray() specifically for arrays, since typeof cannot tell arrays apart from plain objects
- Use instanceof to check if an object was created by a specific class or constructor, especially useful in error handling (error instanceof TypeError)
- Remember instanceof checks the prototype chain, so it can behave unexpectedly across different execution contexts (like iframes) - it is not foolproof for all edge cases
- Combine typeof checks with early returns to validate function inputs before processing them
Runtime & versions
Browsers and JavaScript runtimes. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
ECMAScript specification