Related Articles
What is the difference between (NaN != NaN) & (NaN !== NaN)?
• Last Updated : 17 Jan, 2020

NaN as in most programming languages means Not A Number. It belongs to the numeric data types(int, long, short, etc). It represents a numeric value that can not be interpreted as a finite value. That is one can not define its value. The use of NaN is quite rare. NaN is a property of the global object and number object. Its basically use to check the user’s numeric input and thus make the program error-free.

In JavaScript, this question arises that what is the difference between NaN!=NaN and NaN!==NaN? The answer to this question is that for the purpose of NaN, both of them produce the same answer. Both will result in true. This is due to the variable values of NaN. NaN is not equal to NaN.

• Code 1:
 `                    `
• Output:
```First Value : NaN
Second Value : NaN
Nan!==Nan: true
Nan!=Nan: true```
• Code 2: Now in the first example we clearly know that we can not calculate the square root of negative numbers and so it leads to NaN. We can clearly see the output.
 `                    `
• Output:
```true
true
true
true```

Now there are two ways of checking the desired input is NaN. The first method to check is isNaN() and the other is Number.isNaN(). The second method is for numeric data types only. the first method is demonstrated in Code 2. The String variable is non-numeric and hence you will get the output as true(i.e. its a NaN).

Difference between NaN!=Nan and NaN!==NaN:

• The main difference is not on the NaN it’s on the operator single = compare(NaN!=NaN) only the value which is not equal for each NaN
• In the NaN!==Nan compare the type of the value also so the defference is clear now.

My Personal Notes arrow_drop_up