aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/global_objects/number/isfinite/index.md
blob: bb0af546ce5fcb20fd365c4843f01688ec801187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
title: Number.isFinite()
slug: Web/JavaScript/Reference/Global_Objects/Number/isFinite
tags:
  - ECMAScript6
  - JavaScript
  - Méthode
  - Number
  - Reference
  - polyfill
translation_of: Web/JavaScript/Reference/Global_Objects/Number/isFinite
original_slug: Web/JavaScript/Reference/Objets_globaux/Number/isFinite
---
{{JSRef}}

La méthode **`Number.isFinite()`** permet de déterminer si la valeur fournie est un nombre fini.

{{EmbedInteractiveExample("pages/js/number-isfinite.html")}}

## Syntaxe

    Number.isFinite(valeurÀTester);

### Paramètres

- `valeurÀTester`
  - : La valeur dont on souhaite savoir si elle est finie.

### Valeur de retour

Un booléen indiquant si la valeur passée en argument est un nombre fini.

## Description

Par rapport à la fonction de l'objet global {{jsxref("isFinite","isFinite()")}} qui convertit l'argument donné en un nombre, la fonction `Number.isFinite `ne convertit pas l'argument et ne renvoie pas `true`.

## Exemples

```js
Number.isFinite(Infinity);  // false
Number.isFinite(NaN);       // false
Number.isFinite(-Infinity); // false

Number.isFinite(0);         // true
Number.isFinite(2e64);      // true

Number.isFinite("0");       // false, ce qui aurait
                            // renvoyé true avec isFinite("0")

Number.isFinite(null);      // false, ce qui aurait
                            // renvoyé true avc isFinite(null)
```

## Prothèse d'émulation (_polyfill_)

```js
// Number.isFinite polyfill
// http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite
if (typeof Number.isFinite !== 'function') {
    Number.isFinite = function isFinite(value) {
        // 1. Si Type(number) n'est pas Number, on renvoie false.
        if (typeof value !== 'number') {
            return false;
        }
        // 2. Si le nombre est NaN, +∞, ou −∞, on renvoie false.
        if (value !== value || value === Infinity || value === -Infinity) {
            return false;
        }
        // 3. Sinon on renvoie true.
        return true;
    };
}
```

Deuxième version plus concise qui utilise la méthode globale `isFinite`

```js
if (Number.isFinite === undefined) Number.isFinite = function(value) {
    return typeof value === "number" && isFinite(value);
}
```

## Spécifications

| Spécification                                                                            | État                         | Commentaires         |
| ---------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
| {{SpecName('ES6', '#sec-number.isfinite', 'Number.isInteger')}}     | {{Spec2('ES6')}}         | Définition initiale. |
| {{SpecName('ESDraft', '#sec-number.isfinite', 'Number.isInteger')}} | {{Spec2('ESDraft')}} |                      |

## Compatibilité des navigateurs

{{Compat("javascript.builtins.Number.isFinite")}}

## Voir aussi

- L'objet {{jsxref("Number")}} auquel appartient cette méthode
- La méthode {{jsxref("isFinite", "isFinite()")}} de l'objet global