How to check if a number is NaN in JavaScript:
JavaScript provides a method called Number.isNaN() that can be used to check if a number is NaN or not. In this post, I will show you how to use this method with examples.
Definition of Number.isNaN:
The Number.isNaN() method is defined as like below:
Number.isNaN(v)
It takes a parameter, v, which is the value to check.
Return value of Number.isNaN:
This method returns a boolean value. It returns true if the value v is NaN and its type is Number. Else, it returns false.
Example of Number.isNaN:
Let’s take a look at the below example:
console.log(Number.isNaN(12)); // false
console.log(Number.isNaN(12.4)); // false
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(Number.NaN)); // true
console.log(Number.isNaN(100/0)); // false
console.log(Number.isNaN(0/0)); // true
As you can see here, it returns true if the parameter is NaN and it is a number.
If we don’t pass a number, it will return false.
console.log(Number.isNaN("12"));// false
console.log(Number.isNaN("NaN"));// false
console.log(Number.isNaN(undefined));// false
console.log(Number.isNaN("hello"));// false
console.log(Number.isNaN(null));// false
console.log(Number.isNaN(" "));// false
console.log(Number.isNaN(" "));// false
It returns false for all of these examples.
How to check if a value is NaN or not using if-else block:
We can use a if-else block to check if a value is NaN or not. But, don’t use === NaN as it will return false always.
For example:
v = NaN
if(Number.isNaN(v)){
console.log('v is NaN');
}
It will work and print v is NaN.
But, if you use === to compare the result with NaN:
v = NaN
if(Number.isNaN(v) === NaN){
console.log('v is NaN');
}
It will not work.
console.log(NaN === NaN);
It returns false in JavaScript.
Polyfill for Internet Explorer:
The Number.isNaN() method is not available in Internet Explorer. We can use the following polyfill instead:
Number.isNaN = Number.isNaN || function isNaN(input) {
return typeof input === 'number' && input !== input;
}
It checks if the type of the input value is number or not and the value of input !== input. NaN !== NaN returns true.
Reference:
You might also like:
- How to check if a string ends with another string or character in JavaScript
- JavaScript program to add padding to the start of a string
- JavaScript array fill method explanation with examples
- How to merge arrays in JavaScript using concat() method
- JavaScript reduceRight() method explanation with examples
- How to reverse an array in JavaScript in place
- How to add elements to the start of JavaScript arrays by using unshift
- JavaScript filter method explanation with example
- How to replace an item in an Array in JavaScript
- JavaScript parseFloat method explanation with examples
- JavaScript parseInt function example to convert a string to integer