What is the difference between (NaN != NaN) & (NaN !== NaN)?
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.
- Code 1:
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.
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 difference is clear now.