Skip to main content

How to Check Type in JavaScript

How to Check Type in JavaScript

Determining the type of a variable or expression is crucial for ensuring that your code behaves as expected. JavaScript provides various methods to check the type of data. Here's how you can do it:


1. Using typeof Operator

The typeof operator returns a string indicating the type of the unevaluated operand. This method is suitable for checking the type of primitive values.

console.log(typeof 42);          // Output: "number"
console.log(typeof "Hello");      // Output: "string"
console.log(typeof true);         // Output: "boolean"
console.log(typeof undefined);    // Output: "undefined"
console.log(typeof null);         // Output: "object" (this is a historical bug)
console.log(typeof Symbol());     // Output: "symbol"
console.log(typeof {a: 1});       // Output: "object"
console.log(typeof [1, 2, 3]);    // Output: "object" (arrays are also objects)
console.log(typeof function(){}); // Output: "function"

2. Using instanceof Operator

The instanceof operator checks whether an object is an instance of a particular class or constructor function. This method is useful for checking types of objects and arrays.

console.log([] instanceof Array);       // Output: true
console.log({} instanceof Object);        // Output: true
console.log(function(){} instanceof Function); // Output: true
console.log(new Date() instanceof Date);   // Output: true

3. Using Array.isArray()

The Array.isArray() method determines whether the passed value is an array. This is particularly useful as typeof returns "object" for arrays.

console.log(Array.isArray([1, 2, 3])); // Output: true
console.log(Array.isArray({a: 1}));     // Output: false

4. Using constructor Property

The constructor property can be used to get the constructor function of an object. This is useful for checking types, especially when combined with instanceof.

console.log((42).constructor === Number); // Output: true
console.log(("Hello").constructor === String); // Output: true
console.log(({}).constructor === Object); // Output: true
console.log(([1, 2, 3]).constructor === Array); // Output: true

5. Checking null Special Case

In JavaScript, null is a special case. Although typeof null returns "object," it is not a true object but rather a primitive value. It’s important to handle null separately if you need to differentiate it from objects.

if (value === null) {
    console.log("Value is null");
} else {
    console.log(typeof value);
}

Conclusion

JavaScript provides various methods for checking the type of a variable or expression, including typeof, instanceof, Array.isArray(), and using the constructor property. Each method has its own use cases, and selecting the appropriate method depends on the specific requirements of your code.

Comments