.Photo de Bernard Hermant sur Unsplash
La façon la plus simple de vérifier l’existence d’un nombre : Number.isFinite()
Il n’est en fait pas nécessaire d’écrire des fonctions personnalisées pour vérifier la présence d’un nombre, bien que ce soit un moyen instructif de se rappeler que les valeurs JavaScript Infinity
-Infinity
et NaN
sont toutes du type primitif nombre.
« La méthode Number.isFinite()
détermine si la valeur passée est un nombre fini. » – MDN Docs
La méthode Number.isFinite()
renverra true
pour les nombres finis, et false
pour Infinity
-Infinity
, et NaN
– exactement ce que nous voulons :
Il existe également la fonction globale isFinite()
, qui effectuera la coercition de type (comme la coercition des chaînes de caractères vers les nombres), comme indiqué ci-dessus.
J’aborde ces méthodes en profondeur dans mon article sur Infinity
dans The Startup :
Vérifier si une variable est un entier
Pour vérifier si la variable A est un entier, je pourrais utiliser l’opérateur d’égalité libre ==
pour voir si la valeur analysée est égale à elle-même.
Le bout de code suivant donne un exemple de la façon de vérifier si un entier est un entier :
L’utilisation de typeof
permettrait de différencier une chaîne de caractères contrainte en un nombre d’un nombre réel, tout comme l’opérateur d’égalité stricte ===
.
Supprimer les symboles monétaires
Pour une meilleure, fonction plus robuste, je pourrais vouloir dépouiller les symboles monétaires (comme le signe dollar et toute virgule) en premier lieu.
L’analyse approfondie de la monnaie à l’aide d’expressions régulières en JavaScript dépasse le cadre de cet article, mais ce code supprime $
et ,
avant l’analyse :
Notez que les fonctions globales parseInt()
et parseFloat()
contraindront les valeurs en chaînes de caractères, si nécessaire, et renverront NaN
si la coercition échoue.
Il existe également les fonctions Numbers.parseInt()
et Number.parseFloat()
, qui ont exactement le même comportement.
Selon les MDN Docs, ces fonctions dupliquées ont été ajoutées à ECMAScript 2015 pour la » modularisation des globaux à des fins utiles. »
Le JavaScript a-t-il réellement des entiers séparés ?
Non, JavaScript n’a qu’un seul type de nombre, qui est représenté en interne comme une représentation à virgule flottante de 64 bits.
Cette virgule flottante est le type de données primitif nombre, et il existe également un type appelé BigInt qui peut être utilisé pour des nombres arbitrairement grands.
Les fonctions globales parseInt()
et parseFloat()
diffèrent dans ce qu’elles attendent et produiront, mais pas parce qu’il existe réellement des types entiers et à virgule flottante distincts en JavaScript.