NaN ve Infinity
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
-
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.
-
NaN'ı güvenli denetle
const bad = Number.isNaN(Number(____));Cevabı göster
const bad = Number.isNaN(Number("abc")); -
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
-
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.