Junior
როგორ შემოწმოთ, არის თუ არა რიცხვი NaN?
sobes.tech AI
პასუხი AI-სგან
ფუნქცია isNaN(), რომელიც ამოწმებს, არის თუ არა მნიშვნელობა "არ არის რიცხვი" (Not-a-Number).
// გამოყენების მაგალითები isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, რადგან 'hello' ვერ გარდაიქმნება რიცხვად
console.log(isNaN('123')); // false, რადგან '123' შეიძლება გარდაიქმნას რიცხვად 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, რადგან null გარდაიქმნება 0-ს
// ტიპის გარდაქმნის შემოწმება isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
ასევე არსებობს მეთოდი Number.isNaN(), რომელიც უფრო მკაცრად ამოწმებს კონკრეტულად NaN-ს, არ აკეთებს წინასწარ გარდაქმნას.
// გამოყენების მაგალითები Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, არ აკეთებს გარდაქმნას
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// განსხვავება isNaN()-თან არამატრიცულ არგუმენტებთან
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
NaN-სთან შედარება თავად და სხვა მნიშვნელობებთან ყოველთვის აბრუნებს false, გარდა Object.is()-ის გამოყენებისას.
// NaN-ის შედარების თავისებურება
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// შედარება Object.is()-ის გამოყენებით
console.log(Object.is(NaN, NaN)); // true
შესაბამისად, საჭიროების მიხედვით, შეიძლება გამოიყენოთ isNaN() (თუ მნიშვნელოვანია გარდაქმნის შემოწმება) ან Number.isNaN() (თუ სუფთა და ზუსტი შემოწმება გსურთ). Number.isNaN() უკეთესია კონკრეტულად NaN-ის შემოწმებისთვის.