Fungsi isFinite
Fungsi isFinite untuk menyemak parameter
sama ada ia adalah nombor terhingga (iaitu
bukan rentetan, array dan sebagainya dan bukan infiniti
positif atau negatif).
Bagaimana fungsi ini berfungsi: ia akan mengembalikan false,
jika nombor adalah infiniti positif atau negatif
(iaitu Infinity)
atau bukan nombor (iaitu NaN),
dalam kes lain akan mengembalikan true.
Iaitu rentetan, array dan sebagainya akan ditukar
kepada NaN dan seterusnya mengembalikan false.
Walau bagaimanapun terdapat pengecualian: rentetan kosong
'' mengembalikan true, rentetan dengan ruang ' '
juga mengembalikan true, null
mengembalikan true, untuk nilai true dan false
juga dikembalikan true.
Ini berlaku kerana nilai-nilai ini
ditukar kepada nombor, dan bukan kepada NaN.
Jika anda memerlukan semakan nombor yang benar-benar tepat
yang tidak menganggap rentetan
yang terdiri daripada ruang, nilai boolean dan nilai khas
sebagai nombor - gunakan fungsi isNumeric berikut:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Mari kita fahami bagaimana ia berfungsi.
Fungsi isFinite menukar parameter
kepada nombor dan mengembalikan true, jika ia bukan Infinity,
-Infinity atau NaN.
Oleh itu, bahagian kanan akan menyingkirkan nilai yang jelas
bukan nombor, tetapi akan meninggalkan nilai seperti
true, false, null, rentetan kosong '' dan
rentetan dengan ruang, kerana ia ditukar dengan betul
kepada nombor.
Untuk menyingkirkan nilai-nilai ini, diperlukan fungsi
parseFloat,
yang untuk true, false, null, '', ' '
akan mengembalikan NaN. Begitulah cara fungsi parseFloat berfungsi: ia
menukar parameter kepada rentetan, iaitu true,
false, null menjadi 'true', 'false',
'null', dan kemudian membaca nombor daripadanya,
di mana rentetan kosong dan rentetan dengan ruang
menghasilkan NaN. Kemudian hasil parseFloat diproses
menggunakan !isNaN,
untuk mendapatkan true atau false dan bukannya NaN.
Hasilnya, semua nilai disingkirkan kecuali rentetan-nombor
dan nombor biasa.
Sintaks
isFinite(nilai);
Contoh
Sekarang isFinite akan mengeluarkan true,
kerana parameter adalah nombor:
let num = 3;
console.log(isFinite(num));
Hasil pelaksanaan kod:
true
Contoh
Sekarang isFinite akan mengeluarkan false,
kerana parameter bukan nombor:
let num = 'abcde';
console.log(isFinite(num));
Hasil pelaksanaan kod:
false
Contoh
Sekarang isFinite akan mengeluarkan false,
kerana parameter adalah infiniti:
let num = Infinity;
console.log(isFinite(num));
Hasil pelaksanaan kod:
false
Contoh
Sekarang isFinite akan mengeluarkan false,
kerana 1/0 - pada dasarnya adalah Infinity
(infiniti):
let num = 1 / 0;
console.log(isFinite(num));
Hasil pelaksanaan kod:
false
Contoh
Sekarang isFinite akan mengeluarkan true,
kerana rentetan kosong, walaupun bukan nombor,
- adalah pengecualian:
let num = '';
console.log(isFinite(num));
Hasil pelaksanaan kod:
true