Junior
Hoe controleer je of een getal NaN is?
sobes.tech AI
Antwoord van AI
Ze gebruiken de functie isNaN(), die controleert of de waarde "Geen getal" (Not-a-Number) is.
// Voorbeelden van gebruik van isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, omdat 'hello' niet naar een getal kan worden omgezet
console.log(isNaN('123')); // false, omdat '123' kan worden omgezet naar het getal 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, omdat null wordt omgezet naar 0
// Typeconversiecontrole in isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Er bestaat ook de methode Number.isNaN(), die strenger controleert of de waarde precies NaN is, zonder voorafgaande conversie.
// Voorbeelden van gebruik van Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, converteert niet
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Verschil met isNaN() bij niet-numerieke argumenten
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Het vergelijken van NaN met zichzelf of een andere waarde geeft altijd false, behalve bij gebruik van Object.is().
// Eigenschap van vergelijking met NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Vergelijking met Object.is()
console.log(Object.is(NaN, NaN)); // true
Afhankelijk van de taak kan het nodig zijn om isNaN() te gebruiken (als de controle na conversie naar getal belangrijk is) of Number.isNaN() (voor een strikte controle op NaN). De methode Number.isNaN() is de voorkeur voor het nauwkeurig controleren of een waarde precies NaN is.