isFinite()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La fonction isFinite() détermine si une valeur est finie, en convertissant d'abord la valeur en nombre si nécessaire. Un nombre fini est un nombre qui n'est pas NaN ou ±Infinity. Comme la contrainte à l'intérieur de la fonction isFinite() peut être surprenante, vous pouvez préférer utiliser Number.isFinite().
Exemple interactif
function div(x) {
if (isFinite(1000 / x)) {
return "Le nombre n'est PAS infini.";
}
return "Le nombre est infini !";
}
console.log(div(0));
// Résultat attendu : "Le nombre est infini !"
console.log(div(1));
// Résultat attendu : "Le nombre n'est PAS infini."
Syntaxe
isFinite(value)
Paramètres
value-
La valeur à tester.
Valeur de retour
true, sauf lorsque la valeur donnée est soit Infinity, -Infinity, ou NaN après avoir été convertie en un nombre.
Description
isFinite() est une propriété fonction de l'objet global.
Lorsque l'argument passé à la fonction isFinite() n'est pas de type nombre, la valeur est d'abord contrainte à un nombre, puis la valeur résultante est comparée à NaN et ±Infinity. Ce comportement est aussi déroutant que celui de isNaN — par exemple, isFinite("1") retourne true.
Number.isFinite() est une façon plus fiable de tester si une valeur est un nombre fini, car elle retourne false pour toute entrée qui n'est pas un nombre.
Exemples
>Utiliser la fonction isFinite()
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false
isFinite(0); // true
isFinite(2e64); // true
isFinite(910); // true
// Ce qui suit est faux avec la méthode plus robuste `Number.isFinite()` :
isFinite(null); // true, parce que null est converti en 0
isFinite(""); // true, parce que la chaîne de caractères vide est convertie en 0
isFinite("123"); // true, parce que la chaîne de caractères peut être analysée comme un nombre
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-isfinite-number> |
Compatibilité des navigateurs
Voir aussi
- La propriété
Number.isFinite() - La propriété
Number.NaN - La propriété
Number.POSITIVE_INFINITY - La propriété
Number.NEGATIVE_INFINITY