Nous savons que JavaScript fournit un type d'opérateur, donc la chose la plus simple à penser est d'utiliser le type de coffre pour déterminer s'il est de type de nombre.
La copie de code est la suivante:
fonction isNumber (obj) {
RETOUR TYPE OF OBJ === 'Numéro'
}
Cette fonction n'a aucun problème avec les entiers et les nombres à virgule flottante, mais il renvoie également vrai pour la valeur 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 avoir utilisé ISNumber pour juger.
Ensuite, améliorez-le et essayez d'utiliser object.prototype.tostring.
La copie de code est la suivante:
fonction isNumber (obj) {
return object.prototype.tostring.call (obj) === '[Numéro d'objet]'
}
Comme le type de jugement, il renvoie également vrai pour NAN, et la quantité de code est toujours importante, ce qui n'est pas le résultat souhaité. TOSTRING.CALL La méthode détermine que le tableau (tableau) est possible, mais les nombres sont hors de portée.
Après une amélioration supplémentaire, la valeur NAN ISNAN à gérer.
La copie de code est la suivante:
fonction isNumber (obj) {
RETOUR TYPE OF OBJ === 'Number' &&! Isnan (OBJ)
}
Cette fois, si le numéro entrant est un non-nombre (nan ou une valeur qui peut être converti en NAN), il reviendra faux.
La copie de code est la suivante:
fonction isNumber (obj) {
RETOUR TYPE OF OBJ === 'Number' &&! Isnan (OBJ)
}
isNumber (1) // vrai
isNumber (1.2) // vrai
isNumber (nan) // faux
isNumber (parseInt ('a')) // false
Eh bien, c'est bon, mais il y a un autre équivalent, utilisez Isfinite pour juger
La copie de code est la suivante:
fonction isNumber (obj) {
RETOUR TYPE OF OBJ === 'NUMBRE' && isfinite (OBJ)
}
Jusqu'à présent, le jugement numérique du code le plus court est le troisième mentionné dans cet article qui utilise la fonction ISNAN. Le code de jugement numérique le plus court au monde est lancé ci-dessous
La copie de code est la suivante:
fonction isNumber (obj) {
retour obj === + obj
}
Pour les entiers, le numéro de point flottant renvoie true et pour Nan ou les valeurs qui peuvent être converties en NAN, FALSE.
Vous ne comprenez pas, non? Gu ~~ ()
Les jardiniers ont déclaré que ce n'est pas le code numérique le plus court au monde, et le paramètre Obj peut être changé en un seul caractère. (⊙o⊙) Vous avez raison.
Apprenez d'un exemple et le jugement le plus court est également donné à l'utilisation la plus courte des fonctionnalités de langage dynamique JS (conversion de type automatique interne lorsque le fonctionnement de l'opérateur).
La copie de code est la suivante:
// Judge String
fonction isstring (obj) {
retour obj === obj + ''
}
// juge le type booléen
fonction isboolean (obj) {
retour obj === !! obj
}