Artikel ini terutamanya memperkenalkan kaedah pelaksanaan yang paling mudah untuk menilai jenis integer dalam JavaScript Bab ini memberikan berbilang kaedah untuk menilai integer, dan akhirnya meringkaskan kaedah pelaksanaan terpendek dan paling ringkas yang boleh dirujuk oleh Rakan yang memerlukan.
Kami tahu bahawa JavaScript menyediakan operator jenis, jadi perkara paling mudah untuk difikirkan ialah menggunakan typeof untuk menentukan sama ada ia adalah jenis nombor.
function isNumber(obj) { return typeof obj === 'number' }
Fungsi ini tidak mempunyai masalah dengan integer dan nombor titik terapung, tetapi ia juga mengembalikan benar untuk nilai NaN, yang membuatkan orang berasa tidak selesa Lagipun, tiada siapa yang akan menggunakan NaN untuk melakukan operasi aritmetik selepas menggunakan adalahNombor untuk menilai.
Kemudian perbaiki dan cuba gunakan Object.prototype.toString.
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]' }
Sama seperti jenis penghakiman, ia juga kembali benar untuk NaN Jumlah kod masih besar, yang bukan hasil yang diingini. Kaedah toString.call boleh dilaksanakan untuk menilai tatasusunan (Array), tetapi nombor di luar kemampuannya.
Sebagai penambahbaikan selanjutnya, gunakan fungsi isNaN untuk menangani nilai NaN.
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) }
Kali ini, jika input bukan nombor (NaN atau nilai yang boleh ditukar kepada NaN), false akan dikembalikan
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } isNumber(1) // true isNumber(1.2) // true isNumber(NaN) // false isNumber( parseInt('a') ) // false
Nah, ini Nombor adalah baik, tetapi tidak Terdapat kaedah yang setara, menggunakan isFinite untuk menilai
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }
Sehingga kini, pertimbangan berangka kod terpendek ialah yang ketiga yang disebut dalam artikel ini yang menggunakan fungsi isNaN. . Berikut ialah pelancaran besar kod penghakiman nombor terpendek di dunia
function isNumber(obj) { return obj === +obj }
Mengembalikan benar untuk integer dan nombor titik terapung, dan mengembalikan palsu untuk NaN atau nilai yang boleh ditukar kepada NaN.
Anda tidak faham? Gu~~(╯﹏╰)
Rakan taman berkata bahawa ini bukan kod angka penghakiman terpendek di dunia, dan parameter obj boleh ditukar kepada satu aksara. (⊙o⊙) Anda betul.
Secara analogi, terdapat pertimbangan terpendek yang serupa menggunakan ciri bahasa dinamik JS (penukaran jenis dalaman automatik semasa operasi operator).
// 判断字符串 function isString(obj) { return obj === obj+'' } // 判断布尔类型 function isBoolean(obj) { return obj === !!obj }
Di atas adalah keseluruhan kandungan bab ini Untuk lebih banyak tutorial berkaitan, sila lawati Tutorial Video JavaScript!