Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

js
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()

js
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