Junior
Kaip patikrinti, ar skaičius yra NaN?
sobes.tech AI
Atsakymas iš AI
Funkcija isNaN(), kuri tikrina, ar reikšmė yra "Ne skaičius" (Not-a-Number).
// Pavyzdžiai naudojant isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, nes 'hello' negali būti paverstas skaičiumi
console.log(isNaN('123')); // false, nes '123' gali būti paverstas skaičiumi 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, nes null paverčiamas į 0
// Tipų konvertavimo patikrinimas
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Taip pat yra metodas Number.isNaN(), kuris griežčiau tikrina būtent NaN reikšmę, neįtraukiant išankstinio konvertavimo.
// Pavyzdžiai naudojant Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, nes neįvykdo konvertavimo
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Skirtumas nuo isNaN() su ne skaičiaus argumentais
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
NaN lyginimas su pačiu savimi ar bet kokia kita reikšme visada grąžina false, išskyrus naudojant Object.is().
// NaN palyginimo ypatybė
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Palyginimas naudojant Object.is()
console.log(Object.is(NaN, NaN)); // true
Priklausomai nuo užduoties, gali būti reikalinga naudoti isNaN() (jei svarbu patikrinti po konvertavimo į skaičių) arba Number.isNaN() (griežtesnė patikra, ar reikšmė būtent NaN). Number.isNaN() yra pageidautina tiksliam patikrinimui, ar konkretus reikšmė yra būtent NaN.