Sobes.tech
Junior

Bir sayının NaN olup olmadığını nasıl kontrol edilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Değerin "Sayı değil" (Not-a-Number) olup olmadığını kontrol eden isNaN() fonksiyonunu kullanırlar.

// isNaN() kullanım örnekleri
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, çünkü 'hello' sayıya dönüştürülemez
console.log(isNaN('123'));    // false, çünkü '123' sayıya dönüştürülebilir
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, çünkü null 0’a dönüştürülür

// Tip dönüşümünü kontrol etme
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Ayrıca, Number.isNaN() metodu, değerin tam olarak NaN olup olmadığını daha katı şekilde kontrol eder, önceden dönüşüm yapmadan.

// Number.isNaN() kullanım örnekleri
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, dönüşüm yapmaz
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

// isNaN() ile karşılaştırıldığında farklar
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false

NaN ile kendisi veya başka herhangi bir değer karşılaştırıldığında her zaman false döner, Object.is() kullanımı hariç.

// NaN ile karşılaştırmanın özelliği
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Object.is() ile karşılaştırma
console.log(Object.is(NaN, NaN)); // true

İşlevine göre, isNaN() (dönüşüm sonrası kontrol önemliyse) veya Number.isNaN() (sadece NaN kontrolü için) kullanılabilir. Number.isNaN() yöntemi, belirli bir değerin gerçekten NaN olup olmadığını kesin olarak kontrol etmek için tercih edilir.