17. What are the differences between Number.isNaN() and window.isNaN()?

The value NaN stands for not a number**, yet in JS, it belongs to the number type.

console.info(typeof NaN) // number

It usually arises from attempting to convert a non-numeric value to a number.

To check if a variable holds NaN, two functions can be used:

window.isNaN() takes one argument, converts it to a number, then checks if it equals NaN. It can lead to unexpected results as some values, when converted to a number, behave differently.

console.info(Number(NaN), isNaN(NaN)); // NaN, true console.info(Number(true), isNaN(true)); // 1, false console.info(Number(false), isNaN(false)); // 0, false console.info(Number("string"), isNaN("string")); // NaN, true console.info(Number({}), isNaN({})); // NaN, true console.info(Number([]), isNaN([])); // 0, false

The Number.isNaN() function takes one argument and checks if it is equal to NaN. It does not convert to a number.

console.info(Number.isNaN(NaN)); // true console.info(Number.isNaN(true)); // false console.info(Number.isNaN(false)); // false console.info(Number.isNaN("string")); // false console.info(Number.isNaN({})); // false console.info(Number.isNaN([])); // false
devFlipCards 2024

Do you accept cookies?

Cookies are small amounts of data saved locally on you device, which helps our website - it saves your settings like theme or language. It helps in adjusting ads and in traffic analysis. By using this site, you consent cookies usage.