Skip to main content
Practice Problems

What is nan in JavaScript?

NaN stands for Not-a-Number.

It's a special value in JavaScript that means the operation result is not a valid number.

NaN has numeric type (typeof NaN === "number"), but isn't a number in the classic sense.


When NaN Occurs

NaN appears in the following situations:

javascript
const result1 = 0 / 0; // NaN const result2 = Math.sqrt(-1); // NaN const result3 = parseInt("abc"); // NaN const result4 = "hello" - 5; // NaN

NaN Peculiarities

  • NaN !== NaNtrue This is one of JavaScript's strangest features: NaN never equals even itself.
javascript
console.log(NaN === NaN); // false
  • To check if a value is NaN, you need to use special methods.

How to Properly Check for NaN

MethodFeatures
isNaN(value)Converts value to number, then checks
Number.isNaN(value)Strict check without conversion — preferable

Example:

javascript
isNaN("hello"); // true — because "hello" → NaN Number.isNaN("hello"); // false — string is not NaN Number.isNaN(NaN); // true

Important:

Never compare NaN using ===. Use Number.isNaN() for accurate checking.

Conclusion

  • NaN is a number type value meaning invalid numeric expression.
  • It doesn't equal itself, which makes it special.
  • Use Number.isNaN() for reliable checking.

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.

Finished reading?
Practice Problems