CodeBlanks Logo Icon CodeBlanks

NaN ve Infinity

JavaScript kursu · Başlangıç · Ders 22/133

NaN ve Infinity'nin ne anlama geldiğini ve nasıl kontrol edeceğini öğrenirsin.

NaN: Sayı değil

NaN kısaltması Not a Number (sayı değil) demektir. Bir sayı işleminin anlamlı bir sayı veremediği durumlarda ortaya çıkar.

Yaygın nedenler:

  • parseInt("merhaba") — dizgide sayı yok.
  • 0 / 0 — belirsiz bölme.
  • Number("42px") — tüm dizgi geçerli bir sayı değil.

Tuhaf bir özellik: NaN === NaN false döner! Bu yüzden NaN denetlemek için Number.isNaN yöntemini kullanırsın.

Infinity: Sonsuzluk

Infinity, sınırları aşan çok büyük (ya da negatifse -Infinity) sayıları temsil eder. En sık görülen kaynak sıfıra bölmedir: 1 / 0 Infinity verir.

İki yönlü bir uca dikkat: -1 / 0 -Infinity verir. Bunlar yine de number türündedir; typeof Infinity sonucu "number" olur.

Sonsuz olup olmadığını Number.isFinite(x) ile denetlersin. Bu yöntem NaN ve Infinity için false döner, normal sayılar için true döner.

Uygulama Sıfıra bölmeyi denetle

const result = 10 / 0; tanımla. Sonra Number.isFinite(result) ile sonucun sonlu olup olmadığını check değişkenine koy. check'i console.log ile yazdır.

Örnek çözümü göster
const result = 10 / 0;
const check = Number.isFinite(result);
console.log(check);

Kendini test et

  1. Hangisi NaN verir?

    • 5 / 1
    • parseInt("merhaba")
    • 1 / 0
    • Number(42)
    Cevabı göster

    parseInt("merhaba") — Doğru. "merhaba" dizgisi sayı olmadığı için parseInt NaN döner.

  2. NaN'ı güvenli denetle

    const bad = Number.isNaN(Number(____));
    Cevabı göster
    const bad = Number.isNaN(Number("abc"));
  3. Değer ve anlamını eşleştir

    NaN
    Sayı değil
    Infinity
    Sonsuzluk
    Number.isNaN
    NaN'ı güvenli denetler
    1 / 0
    Infinity sonucunu verir
  4. Number.isNaN("merhaba") ne döner?

    console.log(Number.isNaN("merhaba"));
    • true
    • undefined
    • Hata verir
    • false
    Cevabı göster

    false — Doğru. Number.isNaN önce türü denetler; "merhaba" bir dizgi olduğu ve NaN olmadığı için false döner.

Başlangıç bölümündeki tüm dersler