Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to check type in JavaScript

JavaScript is a versatile and widely used programming language that powers the web. As you embark on your journey to learn programming, understanding how to work with different data types in JavaScript is crucial. In this blog post, we'll explore various ways to check the type of a variable in JavaScript. Along the way, we'll also provide some analogies and real-world examples to make it easier for you to grasp the concepts.

What are data types?

In programming, data types are like containers that hold different kinds of information. For example, when we need to store a number, we can use a specific data type designed to hold numbers. Similarly, when we have a piece of text, we can use another data type to store the text. JavaScript has a few built-in data types that are used to store different kinds of information, like numbers, strings (text), and objects.

The importance of checking data types

When writing code, it's essential to ensure that the data you're working with is of the correct type. For instance, imagine you're running a bakery, and you have different containers for storing ingredients like flour, sugar, and eggs. If you accidentally use sugar instead of flour, your cake won't turn out the way it's supposed to. Similarly, in programming, if you're trying to perform an operation with the wrong data type, your code might not work as expected or might even cause an error.

Now that we understand the importance of working with the correct data types let's dive into the ways to check the type of a variable in JavaScript.

Using the typeof operator

The typeof operator is a built-in JavaScript feature that returns a string representing the data type of a given variable. It's one of the most common ways to check the type of a variable in JavaScript. Here's how you can use it:

let number = 42;
console.log(typeof number); // Output: "number"

let text = "Hello, world!";
console.log(typeof text); // Output: "string"

let isTrue = true;
console.log(typeof isTrue); // Output: "boolean"

In the example above, we have three variables with different data types: a number, a string, and a boolean. By using the typeof operator, we can easily check their types and log the results to the console.

Keep in mind that the typeof operator has some limitations when it comes to checking the type of more complex data structures like arrays and objects.

Checking for arrays

As mentioned earlier, the typeof operator has limitations, and one of them is that it returns "object" for both objects and arrays. To check if a variable is an array, we can use the Array.isArray() method. Let's look at an example:

let fruits = ["apple", "banana", "cherry"];
console.log(typeof fruits); // Output: "object"
console.log(Array.isArray(fruits)); // Output: true

In this example, we have an array of fruits. When we use the typeof operator, it returns "object" instead of "array". To accurately determine if our variable is an array, we use Array.isArray().

Checking for objects

For checking if a variable is an object, we can combine the typeof operator and Array.isArray() method. Here's how you can do it:

let car = {
  make: "Toyota",
  model: "Camry",
  year: 2021,
};

let fruits = ["apple", "banana", "cherry"];

console.log(typeof car === "object" && !Array.isArray(car)); // Output: true
console.log(typeof fruits === "object" && !Array.isArray(fruits)); // Output: false

In the example above, we used the typeof operator to ensure that the variable is an "object" and then used the Array.isArray() method to make sure it's not an array. If both conditions are met, we can conclude that the variable is an object.

Checking for null

Another limitation of the typeof operator is that it returns "object" when checking for null. However, null is a special value in JavaScript representing the absence of any object value. To check if a variable is null, we can use a simple equality check:

let empty = null;
console.log(typeof empty); // Output: "object"
console.log(empty === null); // Output: true

In the example above, we used the typeof operator, which returned "object" for the null value. However, by using the === operator, we can accurately determine if the variable is null.

Custom type-checking functions

To make type-checking more convenient, you can create custom functions that combine the techniques mentioned above. Here are some examples:

function isNumber(value) {
  return typeof value === "number";
}

function isString(value) {
  return typeof value === "string";
}

function isObject(value) {
  return typeof value === "object" && !Array.isArray(value) && value !== null;
}

let number = 42;
let text = "Hello, world!";
let car = {
  make: "Toyota",
  model: "Camry",
  year: 2021,
};

console.log(isNumber(number)); // Output: true
console.log(isString(text)); // Output: true
console.log(isObject(car)); // Output: true

In the example above, we created three custom functions: isNumber(), isString(), and isObject(). Each function returns a boolean value indicating whether the input value is of the specified type.

Conclusion

Checking the type of a variable in JavaScript is essential for ensuring that your code works as expected. In this blog post, we've explored various techniques to check the type of a variable in JavaScript, such as the typeof operator, Array.isArray() method, and custom type-checking functions.

As you continue your programming journey, remember the importance of working with the correct data types. Keep these techniques in mind when you need to check the type of a variable in your JavaScript projects. Happy coding!