Junior
Kā pārbaudīt, vai skaitlis ir NaN?
sobes.tech AI
Atbilde no AI
Funkcija isNaN(), kas pārbauda, vai vērtība ir "Nav skaitlis" (Not-a-Number).
// Piemēri, izmantojot isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, jo 'hello' nevar pārvērst skaitlī
console.log(isNaN('123')); // false, jo '123' var pārvērst skaitlī 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, jo null tiek pārvērsts par 0
// Tipa pārvēršanas pārbaude
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Ir arī metode Number.isNaN(), kas stingrāk pārbauda tieši NaN vērtību, neizpildot iepriekšēju pārvēršanu.
// Piemēri, izmantojot Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, neveic pārvēršanu
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Atšķirība no isNaN() ar ne skaitļu argumentiem
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
NaN salīdzināšana ar pašu un jebkuru citu vērtību vienmēr atgriež false, izņemot Object.is() izmantošanu.
// NaN salīdzināšanas īpatnība
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Salīdzināšana ar Object.is()
console.log(Object.is(NaN, NaN)); // true
Atkarībā no uzdevuma, var būt nepieciešams izmantot isNaN() (ja svarīga ir pārbaude pēc pārvēršanas skaitlī) vai Number.isNaN() (precīzai pārbaudei, vai vērtība ir tieši NaN). Number.isNaN() ir vēlams, lai precīzi pārbaudītu, vai konkrētā vērtība ir tieši NaN.