Sobes.tech
Junior

NaN bo'lsa, qanday tekshirish mumkin?

sobes.tech AI

AIdan javob

isNaN() funksiyasidan foydalaniladi, bu qiymatning "Raqam emas" (Not-a-Number) ekanligini tekshiradi.

// `isNaN()` dan foydalanish misollari
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, chunki 'hello' raqamga aylantirilmaydi
console.log(isNaN('123'));    // false, chunki '123' raqamga aylantirilishi mumkin
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, chunki null 0 ga aylantiriladi

// Turlarni konvertatsiya qilishni tekshirish
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Shuningdek, Number.isNaN() metodi mavjud bo‘lib, u aniq NaN qiymatini tekshiradi, oldindan konvertatsiya qilmasdan.

// `Number.isNaN()` dan foydalanish misollari
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, raqamga aylantirmaydi
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

// `isNaN()` bilan farqi
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false

NaN bilan o‘zi yoki boshqa har qanday qiymatni solishtirish har doim false qaytaradi, Object.is() bundan mustasno.

// NaN bilan solishtirish xususiyati
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Object.is() yordamida solishtirish
console.log(Object.is(NaN, NaN)); // true

Vazifaga qarab, isNaN() (agar tekshirish raqamga aylantirishdan keyin muhim bo‘lsa) yoki Number.isNaN() (aniq NaN tekshiruvi uchun) ishlatilishi mumkin. Number.isNaN() aniq NaN bo‘lsa, tekshirish uchun afzalroq.