Cet article présente principalement la méthode d'implémentation la plus simple pour juger les types entiers en JavaScript. Ce chapitre donne plusieurs méthodes pour juger les entiers et résume enfin la méthode d'implémentation la plus courte et la plus concise. Les amis dans le besoin peuvent s'y référer.
Nous savons que JavaScript fournit l'opérateur typeof, donc la chose la plus simple à penser est d'utiliser typeof pour déterminer s'il s'agit d'un type numérique.
function isNumber(obj) { return typeof obj === 'number' }
Cette fonction n'a aucun problème avec les nombres entiers et les nombres à virgule flottante, mais elle renvoie également vrai pour les valeurs NaN, ce qui met les gens mal à l'aise. Après tout, personne n'utilisera NaN pour effectuer des opérations arithmétiques après utilisation. isNumber pour juger.
Ensuite, améliorez-le et essayez d'utiliser Object.prototype.toString.
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]' }
Identique au type de jugement, il renvoie également vrai pour NaN. La quantité de code est toujours importante, ce qui n'est pas le résultat souhaité. La méthode toString.call est réalisable pour juger des tableaux (Array), mais les nombres dépassent ses capacités.
Comme amélioration supplémentaire, utilisez la fonction isNaN pour gérer les valeurs NaN.
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) }
Cette fois, si le transmis n'est pas un nombre (NaN ou une valeur qui peut être convertie en NaN), false sera renvoyé
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } isNumber(1) // true isNumber(1.2) // true isNumber(NaN) // false isNumber( parseInt('a') ) // false
Eh bien, this isNumber c'est bien, mais c'est quand même Il existe une méthode équivalente, utilisant isFinite pour juger
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }
Jusqu'à présent, le jugement numérique du code le plus court est le troisième mentionné dans cet article qui utilise le. fonction isNaN. Ce qui suit est un grand lancement du code de jugement de nombres le plus court au monde
function isNumber(obj) { return obj === +obj }
Renvoie vrai pour les entiers et les nombres à virgule flottante, et renvoie faux pour NaN ou les valeurs qui peuvent être converties en NaN.
Vous ne comprenez pas ? Gu~~(╯﹏╰)
Les amis du jardin ont dit qu'il ne s'agissait pas du code numérique de jugement le plus court au monde et que le paramètre obj peut être modifié en un seul caractère. (⊙o⊙) Vous avez raison.
Par analogie, il existe un jugement similaire le plus court utilisant les fonctionnalités du langage dynamique JS (conversion de type interne automatique pendant le fonctionnement de l'opérateur).
// 判断字符串 function isString(obj) { return obj === obj+'' } // 判断布尔类型 function isBoolean(obj) { return obj === !!obj }
Ce qui précède représente l'intégralité du contenu de ce chapitre. Pour plus de didacticiels connexes, veuillez visiter le Tutoriel vidéo JavaScript !