Maison > interface Web > js tutoriel > La méthode d'implémentation la plus simple pour déterminer le type d'entier en JavaScript

La méthode d'implémentation la plus simple pour déterminer le type d'entier en JavaScript

PHPz
Libérer: 2018-09-30 13:38:17
original
1512 Les gens l'ont consulté

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'
}
Copier après la connexion

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]'
}
Copier après la connexion

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)
}
Copier après la connexion

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
Copier après la connexion

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)    
}
Copier après la connexion

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
}
Copier après la connexion

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
}
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal