Skip to content
Subscribe to RSS Find me on GitHub Follow me on Twitter

How to Check if a Variable is a Number in JavaScript


In JavaScript, it is important to check if a variable is a number to ensure that the code behaves as expected. This knowledge can help prevent errors and ensure that the program handles numeric data correctly.

When working with variables, it is common to perform calculations, comparisons, and other operations that require the variable to be a number. If a variable unexpectedly contains a non-numeric value, it could lead to unexpected behavior or errors in the code.

By checking if a variable is a number before performing any operations on it, you can avoid potential issues and handle non-numeric values appropriately. This can help improve the reliability and stability of your JavaScript programs.

Using typeof Operator

The typeof operator in JavaScript is used to determine the data type of a variable. It returns a string that indicates the type of the operand. In the context of checking if a variable is a number, we can use typeof to determine if the variable is of type "number".

Here is an example of how to use typeof to check if a variable is a number:

let num = 42;
let str = "Hello";
let bool = true;

console.log(typeof num); // Output: "number"
console.log(typeof str); // Output: "string"
console.log(typeof bool); // Output: "boolean"

In the above code snippet, we check the data type of the variables num, str, and bool using the typeof operator. The output shows that the typeof operator correctly identifies the data type of each variable.

Using typeof for numeric validation has its advantages. It is a simple and straightforward method to check if a variable is a number. Additionally, typeof works well with most primitive data types and does not require any additional code or dependencies.

However, there are some limitations to using typeof for numeric validation. One limitation is that typeof returns "number" for both actual numbers and NaN (Not-a-Number). This means that if you have a variable that contains NaN, typeof will incorrectly identify it as a number. Additionally, typeof also returns "number" for numeric strings, which may not be what you want when checking for actual numbers.

Despite these limitations, the typeof operator can still be a useful tool for checking if a variable is a number in certain scenarios. It is important to be aware of its behavior and use it appropriately based on the specific requirements of your code.

Using isNaN Function

In JavaScript, the isNaN function is used to determine if a value is NaN (Not-a-Number). Its purpose is to check if a variable is a number or not.

To use the isNaN function, pass the variable as an argument and it will return true if the variable is not a number, and false if it is a number.

Here's an example of how to use the isNaN function:

let num = 42;
let str = "Hello";

console.log(isNaN(num));  // Output: false
console.log(isNaN(str));  // Output: true

In the above example, isNaN is used to check if the variables num and str are numbers. The isNaN(num) returns false because num is a number, while isNaN(str) returns true because str is not a number.

It's important to note that the isNaN function has some quirks when dealing with certain types of input. For example, if the input is an empty string (""), it returns false because an empty string is considered a valid number representation in JavaScript. Additionally, if the input is a non-empty string containing only whitespace characters, it also returns false. This behavior can be unexpected, so it's important to keep it in mind when using isNaN for numeric validation.

In summary, the isNaN function provides a simple and straightforward way to check if a variable is a number in JavaScript. However, it's important to be aware of its behavior with different types of input to ensure accurate numeric validation.

Using Regular Expressions

Regular expressions are powerful tools in JavaScript for pattern matching and validation. They provide a flexible way to search, match, and manipulate strings based on specific patterns. Regular expressions can also be used to validate if a variable is a number.

To check if a variable is a number using regular expressions, you can use the test() method in JavaScript. This method checks if a string matches a specified pattern and returns true or false accordingly.

Here's an example of using a regular expression to check if a variable is a number:

let variable = '123';

if (/^\d+$/.test(variable)) {
  console.log('The variable is a number');
} else {
  console.log('The variable is not a number');

In this example, the regular expression /^\d+$/ is used to match a string consisting of one or more digits. The ^ and $ symbols denote the start and end of the string, respectively, and \d represents a digit character.

There are different regular expressions that can be used for numeric validation, depending on the specific requirements of your task. For example, you can modify the regular expression to allow decimal numbers or negative numbers by including additional patterns.

Regular expressions provide a flexible and powerful way to validate if a variable is a number in JavaScript. However, they can be more complex to understand and use compared to other methods like typeof or isNaN. It's important to carefully consider the requirements of your task and choose the appropriate method for numeric validation.


In this article, we discussed three different techniques for checking if a variable is a number in JavaScript: using the typeof operator, the isNaN function, and regular expressions.

The typeof operator allows us to determine the data type of a variable and can be used to check if a variable is a number. However, it has some limitations, such as treating NaN as a number and returning "object" for arrays.

The isNaN function is specifically designed to check if a value is NaN (Not a Number), making it a useful tool for numeric validation. However, it also has some quirks, such as returning true for non-numeric strings.

Regular expressions are powerful tools for pattern matching, and they can be used to validate if a variable is a number. They provide flexibility in defining the desired numeric patterns, allowing for more specific validation.

When deciding which method to use, it is important to consider the specific requirements of the task at hand. Each method has its advantages and limitations, so choosing the appropriate method(s) will depend on the context and desired behavior.

Checking variable types is crucial for reliable programming practices. By ensuring that variables have the expected data types, we can prevent errors and improve the overall robustness of our code. It is always important to validate user input and handle unexpected data gracefully, and these techniques can help us achieve that.