Kita tahu bahwa JavaScript menyediakan tipe operator, jadi hal termudah untuk dipikirkan adalah menggunakan tipeof untuk menentukan apakah itu dari tipe angka.
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
Tipe pengembalian obj === Nomor '
}
Fungsi ini tidak memiliki masalah dengan bilangan bulat dan bilangan poin mengambang, tetapi juga mengembalikan nilai NAN, yang membuat orang merasa tidak nyaman. Lagi pula, tidak ada yang akan menggunakan NAN untuk melakukan operasi aritmatika setelah menggunakan iSnumber untuk menilai.
Kemudian tingkatkan dan coba gunakan object.prototype.tostring.
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
return object.prototype.tostring.call (obj) === '[nomor objek]'
}
Seperti tipe penilaian, itu juga mengembalikan NAN, dan jumlah kode masih besar, yang bukan hasil yang diinginkan. Metode ToString.Call menentukan bahwa Array (Array) layak, tetapi angka di luar jangkauan.
Setelah perbaikan lebih lanjut, nilai NAN ISNAN fungsi untuk ditangani.
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
Tipe Return Obj === Number '&&! Isnan (Obj)
}
Kali ini, jika nomor yang masuk adalah non-nomor (NAN atau nilai yang dapat dikonversi menjadi NAN), itu akan mengembalikan false.
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
Tipe Return Obj === Number '&&! Isnan (Obj)
}
isNumber (1) // Benar
isNumber (1.2) // Benar
isNumber (nan) // false
isNumber (parseint ('a')) // false
Nah, jumlah ini bagus, tetapi ada yang setara, menggunakan tidak ada untuk menilai
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
Return Typeof Obj === Number '&& isFinite (OBJ)
}
Hingga saat ini, penilaian numerik dari kode terpendek adalah yang ketiga yang disebutkan dalam artikel ini yang menggunakan fungsi ISNAN. Kode penilaian numerik terpendek di dunia diluncurkan di bawah ini
Salinan kode adalah sebagai berikut:
function isNumber (obj) {
kembalikan obj === +obj
}
Untuk bilangan bulat, angka floating point mengembalikan true, dan untuk NAN atau nilai yang dapat dikonversi menjadi NAN, false.
Tidak mengerti, kan? Gu ~~ ()
Tukang kebun mengatakan bahwa ini bukan kode numerik terpendek di dunia, dan parameter OBJ dapat diubah menjadi satu karakter. (⊙o⊙) Anda benar.
Belajar dari satu contoh dan penilaian terpendek juga diberikan untuk penggunaan fitur bahasa dinamis JS terpendek (konversi tipe otomatis internal saat operasi operator).
Salinan kode adalah sebagai berikut:
// Hakim string
fungsi isstring (obj) {
kembalikan obj === obj+''
}
// Juri Tipe Boolean
fungsi isboolean (obj) {
kembalikan obj === !! Obj
}