isFinite Fonksiyonu

isFinite fonksiyonu, bir parametrenin sonlu bir sayı olup olmadığını kontrol etmek için kullanılır (yani bir dizi, string vs. değil ve artı veya eksi sonsuzluk değil).

Bu fonksiyon nasıl çalışır: eğer sayı artı veya eksi sonsuzluk ise (yani Infinity) veya sayı değilse (yani NaN) false döndürür, diğer durumlarda true döndürür. Yani stringler, diziler vb. NaN'a dönüştürülecek ve buna bağlı olarak false döndürecektir.

Ancak istisnalar vardır: boş string '' true döndürür, boşluk içeren string ' ' ayrıca true döndürür, null true döndürür, true ve false değerleri için ayrıca true döndürülür.

Bunun nedeni, bu değerlerin NaN'a değil, sayılara dönüştürülmesidir. Eğer boşluklardan oluşan bir stringi, mantıksal ve özel değerleri sayı olarak kabul etmeyen gerçekten hassas bir sayı kontrolüne ihtiyacınız varsa, aşağıdaki isNumeric fonksiyonunu kullanın:

javascriptfunction isNumeric(num) {
  return !isNaN(parseFloat(num)) && isFinite(num);
};

Bu fonksiyonun nasıl çalıştığını anlayalım. isFinite fonksiyonu parametreyi bir sayıya dönüştürür ve eğer bu Infinity, -Infinity veya NaN değilse true döndürür. Böylece, sağ kısım açıkça sayı olmayan değerleri eler, ancak true, false, null, boş string '' ve boşluk stringi gibi değerleri bırakır, çünkü bunlar doğru şekilde sayılara dönüştürülür.

Bu değerleri elemek için parseFloat fonksiyonuna ihtiyaç vardır, bu fonksiyon true, false, null, '', ' ' için NaN döndürür. parseFloat fonksiyonu bu şekilde çalışır: parametreyi stringe dönüştürür, yani true, false, null, 'true', 'false', 'null' olur ve sonra içinden bir sayı okur, bu sırada boş string ve boşluk içeren stringler NaN verir. Ardından parseFloat sonucu, NaN yerine true veya false elde etmek için !isNaN ile işlenir. Sonuç olarak, sayı-stringler ve normal sayılar dışındaki her şey elenir.

Sözdizimi

javascriptisFinite(değer);

Örnek

Şimdi isFinite true gösterecek, çünkü parametre bir sayıdır:

javascriptlet num = 3;
console.log(isFinite(num));

Kodun çalıştırılmasının sonucu:

javascripttrue

Örnek

Şimdi isFinite false gösterecek, çünkü parametre bir sayı değildir:

javascriptlet num = 'abcde';
console.log(isFinite(num));

Kodun çalıştırılmasının sonucu:

javascriptfalse

Örnek

Şimdi isFinite false gösterecek, çünkü parametre sonsuzluktur:

javascriptlet num = Infinity;
console.log(isFinite(num));

Kodun çalıştırılmasının sonucu:

javascriptfalse

Örnek

Şimdi isFinite false gösterecek, çünkü 1/0 aslında Infinity'dir (sonsuzluk):

javascriptlet num = 1 / 0;
console.log(isFinite(num));

Kodun çalıştırılmasının sonucu:

javascriptfalse

Örnek

Şimdi isFinite true gösterecek, çünkü sayı olmayan boş string bir istisnadır:

javascriptlet num = '';
console.log(isFinite(num));

Kodun çalıştırılmasının sonucu:

javascripttrue

Ayrıca Bakınız

  • isNaN fonksiyonu,
    NaN kontrolü yapar
  • typeof operatörü,
    veri tipini belirler