Fungsi isFinite

Fungsi isFinite untuk memeriksa parameter pada apakah ia merupakan angka terbatas (yaitu bukan string, array, dll. dan bukan plus atau minus tak terhingga).

Cara kerja fungsi ini: ia akan mengembalikan false, jika angka tersebut adalah plus atau minus tak terhingga (yaitu Infinity) atau bukan angka (yaitu NaN), dalam kasus lainnya akan mengembalikan true. Artinya, string, array, dll. akan dikonversi menjadi NaN dan karenanya akan mengembalikan false.

Namun ada pengecualian: string kosong '' mengembalikan true, string dengan spasi ' ' juga mengembalikan true, null mengembalikan true, untuk nilai true dan false juga dikembalikan true.

Ini terjadi karena nilai-nilai tersebut dikonversi menjadi angka, bukan menjadi NaN. Jika Anda memerlukan pemeriksaan yang benar-benar tepat untuk angka, yang tidak menganggap angka string yang terdiri dari spasi, nilai boolean dan nilai khusus - gunakan fungsi isNumeric berikut:

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

Mari kita pahami cara kerjanya. Fungsi isFinite mengonversi parameter menjadi angka dan mengembalikan true, jika ini bukan Infinity, -Infinity atau NaN. Dengan demikian, bagian kanan akan menyaring bukan-angka yang jelas, tetapi akan membiarkan nilai-nilai seperti true, false, null, string kosong '' dan string dengan spasi, karena mereka dikonversi dengan benar menjadi angka.

Untuk menyaring nilai-nilai ini, diperlukan fungsi parseFloat, yang untuk true, false, null, '', ' ' akan mengembalikan NaN. Begitulah cara kerja fungsi parseFloat: ia mengonversi parameter menjadi string, yaitu true, false, null menjadi 'true', 'false', 'null', dan kemudian membaca angka darinya, sementara itu string kosong dan string dengan spasi menghasilkan NaN. Kemudian hasil parseFloat diproses dengan !isNaN, untuk mendapatkan true atau false sebagai ganti NaN. Hasilnya, semua disaring kecuali string-angka dan angka biasa.

Sintaksis

javascriptisFinite(nilai);

Contoh

Sekarang isFinite akan menampilkan true, karena parameternya adalah angka:

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

Hasil eksekusi kode:

javascripttrue

Contoh

Sekarang isFinite akan menampilkan false, karena parameternya bukan angka:

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

Hasil eksekusi kode:

javascriptfalse

Contoh

Sekarang isFinite akan menampilkan false, karena parameternya adalah tak terhingga:

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

Hasil eksekusi kode:

javascriptfalse

Contoh

Sekarang isFinite akan menampilkan false, karena 1/0 - ini pada dasarnya adalah Infinity (tak terhingga):

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

Hasil eksekusi kode:

javascriptfalse

Contoh

Sekarang isFinite akan menampilkan true, karena string kosong, yang bukan angka, - adalah pengecualian:

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

Hasil eksekusi kode:

javascripttrue

Lihat juga

  • fungsi isNaN,
    yang melakukan pemeriksaan untuk NaN
  • operator typeof,
    yang menentukan tipe data