From 844f5103992238c0c23203286dad16a466e89c97 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:09 +0200 Subject: move *.html to *.md --- .../global_objects/bigint/asintn/index.html | 73 ------ .../global_objects/bigint/asintn/index.md | 73 ++++++ .../global_objects/bigint/asuintn/index.html | 73 ------ .../global_objects/bigint/asuintn/index.md | 73 ++++++ .../reference/global_objects/bigint/index.html | 279 --------------------- .../reference/global_objects/bigint/index.md | 279 +++++++++++++++++++++ .../bigint/tolocalestring/index.html | 129 ---------- .../global_objects/bigint/tolocalestring/index.md | 129 ++++++++++ .../global_objects/bigint/tostring/index.html | 94 ------- .../global_objects/bigint/tostring/index.md | 94 +++++++ .../global_objects/bigint/valueof/index.html | 59 ----- .../global_objects/bigint/valueof/index.md | 59 +++++ 12 files changed, 707 insertions(+), 707 deletions(-) delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/asintn/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/asintn/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/tostring/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/tostring/index.md delete mode 100644 files/fr/web/javascript/reference/global_objects/bigint/valueof/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/bigint/valueof/index.md (limited to 'files/fr/web/javascript/reference/global_objects/bigint') diff --git a/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.html b/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.html deleted file mode 100644 index 13023405cf..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: BigInt.asIntN() -slug: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN -tags: - - BigInt - - JavaScript - - Méthode - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/asIntN ---- -

{{JSRef}}

- -

La méthode statique BigInt.asIntN() permet d'écréter un nombre BigInt pour obtenir un entier signé entre 2^(largeur-1) et 2^(largeur-1)-1.

- -
{{EmbedInteractiveExample("pages/js/bigint-asintn.html")}}
- -

Syntaxe

- -
var resultat = BigInt.asIntN(largeur, bigint);
- -

Paramètres

- -
-
largeur
-
La quantité de bits disponible pour stocker l'entier.
-
bigint
-
L'entier qu'on souhaite stocker sur le nombre de bits indiqués.
-
- -

Valeur de retour

- -

La valeur de bigint modulo 2^largeur comme entier signé.

- -

Exemples

- -

La méthode BigInt.asIntN() peut être utile pour rester dans une arithmétique sur 64 bits :

- -
const max = 2n ** (64n - 1n) - 1n;
-
-BigInt.asIntN(64, max);
-// ↪ 9223372036854775807n
-
-BigInt.asIntN(64, max + 1n);
-// ↪ -9223372036854775807n
-// négatif car dépassement sur le nombre de bits
-
- -

Spécifications

- - - - - - - - - - - - -
SpécificationÉtat
BigInt proposalProposition de niveau 3.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt.asIntN")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.md b/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.md new file mode 100644 index 0000000000..13023405cf --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/asintn/index.md @@ -0,0 +1,73 @@ +--- +title: BigInt.asIntN() +slug: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN +tags: + - BigInt + - JavaScript + - Méthode + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asIntN +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/asIntN +--- +

{{JSRef}}

+ +

La méthode statique BigInt.asIntN() permet d'écréter un nombre BigInt pour obtenir un entier signé entre 2^(largeur-1) et 2^(largeur-1)-1.

+ +
{{EmbedInteractiveExample("pages/js/bigint-asintn.html")}}
+ +

Syntaxe

+ +
var resultat = BigInt.asIntN(largeur, bigint);
+ +

Paramètres

+ +
+
largeur
+
La quantité de bits disponible pour stocker l'entier.
+
bigint
+
L'entier qu'on souhaite stocker sur le nombre de bits indiqués.
+
+ +

Valeur de retour

+ +

La valeur de bigint modulo 2^largeur comme entier signé.

+ +

Exemples

+ +

La méthode BigInt.asIntN() peut être utile pour rester dans une arithmétique sur 64 bits :

+ +
const max = 2n ** (64n - 1n) - 1n;
+
+BigInt.asIntN(64, max);
+// ↪ 9223372036854775807n
+
+BigInt.asIntN(64, max + 1n);
+// ↪ -9223372036854775807n
+// négatif car dépassement sur le nombre de bits
+
+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationÉtat
BigInt proposalProposition de niveau 3.
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt.asIntN")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.html b/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.html deleted file mode 100644 index 5331dbae11..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: BigInt.asUintN() -slug: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN -tags: - - BigInt - - Experimental - - JavaScript - - Méthode - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/asUintN ---- -

{{JSRef}}

- -

La méthode statique BigInt.asUintN() permet d'écréter un BigInt pour ramener sa valeur sur un entier non-signé entre 0 et 2^(largeur)-1.

- -
{{EmbedInteractiveExample("pages/js/bigint-asuintn.html")}}
- -

Syntaxe

- -
var résultat = BigInt.asUintN(largeur, bigint);
- -

Paramètres

- -
-
largeur
-
Le nombre de bits disponible pour stocker l'entier.
-
bigint
-
L'entier qu'on souhaite stocker sur le nombre de bits indiqués.
-
- -

Valeur de retour

- -

La valeur de bigint modulo 2^largeur comme un entier non signé.

- -

Exemples

- -

La méthode BigInt.asUintN() peut s'avérer utile pour rester dans une arithmétique exprimée sur 64 bits .

- -
const max = 2n ** 64n - 1n;
-
-BigInt.asUintN(64, max);
-// ↪ 18446744073709551615n
-
-BigInt.asUintN(64, max + 1n);
-// ↪ 0n
-// zéro en raison du dépassement
- -

Spécifications

- - - - - - - - - - - - -
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt.asUintN")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.md b/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.md new file mode 100644 index 0000000000..5331dbae11 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/asuintn/index.md @@ -0,0 +1,73 @@ +--- +title: BigInt.asUintN() +slug: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN +tags: + - BigInt + - Experimental + - JavaScript + - Méthode + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/asUintN +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/asUintN +--- +

{{JSRef}}

+ +

La méthode statique BigInt.asUintN() permet d'écréter un BigInt pour ramener sa valeur sur un entier non-signé entre 0 et 2^(largeur)-1.

+ +
{{EmbedInteractiveExample("pages/js/bigint-asuintn.html")}}
+ +

Syntaxe

+ +
var résultat = BigInt.asUintN(largeur, bigint);
+ +

Paramètres

+ +
+
largeur
+
Le nombre de bits disponible pour stocker l'entier.
+
bigint
+
L'entier qu'on souhaite stocker sur le nombre de bits indiqués.
+
+ +

Valeur de retour

+ +

La valeur de bigint modulo 2^largeur comme un entier non signé.

+ +

Exemples

+ +

La méthode BigInt.asUintN() peut s'avérer utile pour rester dans une arithmétique exprimée sur 64 bits .

+ +
const max = 2n ** 64n - 1n;
+
+BigInt.asUintN(64, max);
+// ↪ 18446744073709551615n
+
+BigInt.asUintN(64, max + 1n);
+// ↪ 0n
+// zéro en raison du dépassement
+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt.asUintN")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/bigint/index.html b/files/fr/web/javascript/reference/global_objects/bigint/index.html deleted file mode 100644 index 6e842994cc..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/index.html +++ /dev/null @@ -1,279 +0,0 @@ ---- -title: BigInt -slug: Web/JavaScript/Reference/Global_Objects/BigInt -tags: - - BigInt - - Experimental - - JavaScript - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt ---- -
{{JSRef}}
- -

BigInt est un objet natif qui permet de représenter des nombres entiers supérieurs à 2^53 (la plus grande valeur entière qui puisse être représentée par le type primitif {{jsxref("Number")}}). BigInt peut être utilisé afin de représenter de grands entiers de n'importe quelle taille.

- -
-

Note : BigInt est actuellement une proposition de niveau 3 pour la spécification ECMAScript.

- -

Lorsque cette proposition atteindra le niveau 4 (soit la spécification finale), BigInt sera le deuxième type natif disponible en JavaScript pour représenter des valeurs numériques.

- -

BigInt sera ainsi le prochain type primitif ajouté à JavaScript depuis {{JSxRef("Symbol")}} avec ES2015

-
- -

Syntaxe

- -
BigInt(valeur);
-
- -

Paramètres

- -
-
valeur
-
La valeur numérique de l'objet qu'on souhaite créer. Cet argument peut être une chaîne de caractères ou un entier.
-
- -
-

Note : BigInt() n'est pas censé être utilisé avec l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.

-
- -

Description

- -

Un objet BigInt est créé en ajoutant un n à la fin d'un littéral d'entier — 10n par exemple — ou en appelant la fonction BigInt().

- -
const plusGrandEntier = 9007199254740991n;
-
-const grandNombre = BigInt(9007199254740991);
-// ↪ 9007199254740991n
-
-const grandNombreEnChaîne = BigInt('9007199254740991');
-// ↪ 9007199254740991n
-
-const grandeNombreHexa = BigInt("0x1fffffffffffff");
-// ↪ 9007199254740991n
-
-const grandeNombreBinaire = BigInt("0b11111111111111111111111111111111111111111111111111111");
-// ↪ 9007199254740991n
- -

Les objets BigInt sont semblables aux objets {{jsxref("Number")}} selon certains aspects mais avec quelques différences clés. Les objets BigInt ne peuvent pas êre utilisés avec l'objet {{jsxref("Math")}} et ne peuvent pas être manipulés avec des opérations qui impliquent des objets {{jsxref("Number")}}.

- -
-

Attention : Il est nécessaire de convertir des valeurs {{jsxref("Number")}} ou BigInt dans les opérations qui les combinent.

- -

Attention lors de ces conversions car la précision d'une valeur BigInt peut être perdue lorsque ce dernier est converti en {{jsxref("Number")}}.

-
- -

Type

- -

Lorsqu'on utilise typeof sur une valeur BigInt, cet opérateur renverra "bigint" :

- -
typeof 1n === "bigint"; // true
-typeof BigInt("1") === "bigint"; // true
- -

Lorsqu'on « enveloppe » la valeur dans un objet, on aura alors un type "object" (comme pour les autres valeurs primitives lorsqu'on les enveloppe dans le constructeur objet) :

- -
typeof Object(1n) === "object"; // true
- -

Opérateurs

- -

On peut utiliser les opérateurs suivants avec les objets BigInt : +, `*`, `-`, `**`, `%` , les opérateurs binaires (à l'exception de >>> / décalage à droite avec des zéros) car les grands entiers sont signés. Le + unaire n'est pas non plus pris en charge (afin de ne pas casser asm.js).

- -
const nombreSain = BigInt(Number.MAX_SAFE_INTEGER);
-// ↪ 9007199254740991
-
-const maxPlusUn = nombreSain + 1n;
-// ↪ 9007199254740992n
-
-const leFutur = nombreSain + 2n;
-// ↪ 9007199254740993n, cela fonctionne désormais !
-
-const multi = nombreSain * 2n;
-// ↪ 18014398509481982n
-
-const subtr = multi – 10n;
-// ↪ 18014398509481972n
-
-const mod = multi % 10n;
-// ↪ 2n
-
-const bigN = 2n ** 54n;
-// ↪ 18014398509481984n
-
-bigN * -1n
-// ↪ –18014398509481984n
-
- -

L'opérateur / fonctionne de façon analogue aux nombres classiques. Toutefois, les objets BigInt permettent uniquement de représenter des entiers et non des nombres décimaux. Aussi, la division ne produira pas de partie décimale pour les BigInt.

- -
const attendu = 4n / 2n;
-// ↪ 2n
-
-const tronque = 5n / 2n;
-// ↪ 2n et pas 2.5n
-
-
- -

Comparaisons

- -

Un objet BigInt n'est pas strictement égal à {{jsxref( "Number")}} mais peut l'être au sens de l'égalité faible.

- -
0n === 0
-// ↪ false
-
-0n == 0
-// ↪ true
- -

On peut toutefois comparer des objets {{jsxref("Number")}} et BigInt :

- -
1n < 2
-// ↪ true
-
-2n > 1
-// ↪ true
-
-2 > 2
-// ↪ false
-
-2n > 2
-// ↪ false
-
-2n >= 2
-// ↪ true
- -

On peut également mélanger ces valeurs au sein de tableaux :

- -
const mixed = [4n, 6, -12n, 10, 4, 0, 0n];
-// ↪  [4n, 6, -12n, 10, 4, 0, 0n]
-
-mixed.sort();
-// ↪ [-12n, 0, 0n, 10, 4n, 4, 6]
- -

On notera que les comparaisons entre les valeurs BigInt et les mêmes valeurs, passées dans le constructeur Object() ne seront pas équivalentes au sens strict :

- -
0n === Object(0n); // false
-Object(0n) === Object(0n); // false
-
-const o = Object(0n);
-o === o; // true
- -

Opérations conditionnelles

- -

Un objet BigInt se comporte comme un objet {{jsxref("Number")}} lorsqu'il est utilisé dans un contexte booléen : comme argument pour le constructeur {{jsxref("Boolean")}}, comme opérandes pour les opérateurs logiques ||, `&&` et ! ou avec les instructions conditonnelles telles que if.

- -
if (0n) {
-  console.log('Nous voici dans le if !');
-} else {
-  console.log('Et nous voilà dans le else !');
-}
-
-// ↪ "Et nous voilà dans le else !"
-
-0n || 12n
-// ↪ 12n
-
-0n && 12n
-// ↪ 0n
-
-Boolean(0n)
-// ↪ false
-
-Boolean(12n)
-// ↪ true
-
-!12n
-// ↪ false
-
-!0n
-// ↪ true
-
- -

Méthodes

- -
-
BigInt.asIntN()
-
Écrète un objet BigInt pour obtenir un entier signé entre -2^(largeur-1) et 2^(largeur-1)-1
-
BigInt.asUintN()
-
Écrète un objet BigInt pour obtenir un entier non-signé entre 0 et 2^(largeur)-1
-
- -

Propriétés

- -
-
{{jsxref("BigInt.prototype")}}
-
Cette propriété permet d'ajouter des propriétés aux objets BigInt.
-
- -

Instances de BigInt

- -

L'ensemble des instances de BigInt héritent de BigInt.prototype. Le prototype du constructeur BigInt peut être modifié afin de modifier l'ensemble des instances de BigInt.

- -

Méthodes

- -

{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/prototype', 'Méthodes')}}

- -

Recommandations

- -

Coercition en Number

- -

Lorsqu'on convertit une valeur BigInt en {{jsxref("Objets_globaux/Number","Number")}}, on perd en précision. Si on effectue des allers-retours entre ces deux types, on ne conservera pas la même valeur. Aussi, il est recommandé d'utiliser uniquement BigInt lorsque les valeurs qu'on manipule seront supérieures à 2^53 et qu'il ne sera pas nécessaire de passer d'un type à l'autre.

- -

Cryptographie

- -

Les opérations prises en charge pour les valeurs BigInt ne s'effectuent pas à temps constant. Aussi, BigInt ne serait être utilisé à des fins cryptographiques.

- -

Exemples

- -

Calculer des nombres premiers

- -
function isPrime(p) {
-  for (let i = 2n; i * i <= p; i++) {
-    if (p % i === 0n) return false;
-  }
-  return true;
-}
-
-// Takes a BigInt as an argument and returns a BigInt
-function nthPrime(nth) {
-  let maybePrime = 2n;
-  let prime = 0n;
-
-  while (nth >= 0n) {
-    if (isPrime(maybePrime)) {
-      nth -= 1n;
-      prime = maybePrime;
-    }
-    maybePrime += 1n;
-  }
-
-  return prime;
-}
-
-nthPrime(20n)
-// ↪ 73n
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationÉtat
BigIntBrouillon de niveau 3
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/index.md b/files/fr/web/javascript/reference/global_objects/bigint/index.md new file mode 100644 index 0000000000..6e842994cc --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/index.md @@ -0,0 +1,279 @@ +--- +title: BigInt +slug: Web/JavaScript/Reference/Global_Objects/BigInt +tags: + - BigInt + - Experimental + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt +--- +
{{JSRef}}
+ +

BigInt est un objet natif qui permet de représenter des nombres entiers supérieurs à 2^53 (la plus grande valeur entière qui puisse être représentée par le type primitif {{jsxref("Number")}}). BigInt peut être utilisé afin de représenter de grands entiers de n'importe quelle taille.

+ +
+

Note : BigInt est actuellement une proposition de niveau 3 pour la spécification ECMAScript.

+ +

Lorsque cette proposition atteindra le niveau 4 (soit la spécification finale), BigInt sera le deuxième type natif disponible en JavaScript pour représenter des valeurs numériques.

+ +

BigInt sera ainsi le prochain type primitif ajouté à JavaScript depuis {{JSxRef("Symbol")}} avec ES2015

+
+ +

Syntaxe

+ +
BigInt(valeur);
+
+ +

Paramètres

+ +
+
valeur
+
La valeur numérique de l'objet qu'on souhaite créer. Cet argument peut être une chaîne de caractères ou un entier.
+
+ +
+

Note : BigInt() n'est pas censé être utilisé avec l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.

+
+ +

Description

+ +

Un objet BigInt est créé en ajoutant un n à la fin d'un littéral d'entier — 10n par exemple — ou en appelant la fonction BigInt().

+ +
const plusGrandEntier = 9007199254740991n;
+
+const grandNombre = BigInt(9007199254740991);
+// ↪ 9007199254740991n
+
+const grandNombreEnChaîne = BigInt('9007199254740991');
+// ↪ 9007199254740991n
+
+const grandeNombreHexa = BigInt("0x1fffffffffffff");
+// ↪ 9007199254740991n
+
+const grandeNombreBinaire = BigInt("0b11111111111111111111111111111111111111111111111111111");
+// ↪ 9007199254740991n
+ +

Les objets BigInt sont semblables aux objets {{jsxref("Number")}} selon certains aspects mais avec quelques différences clés. Les objets BigInt ne peuvent pas êre utilisés avec l'objet {{jsxref("Math")}} et ne peuvent pas être manipulés avec des opérations qui impliquent des objets {{jsxref("Number")}}.

+ +
+

Attention : Il est nécessaire de convertir des valeurs {{jsxref("Number")}} ou BigInt dans les opérations qui les combinent.

+ +

Attention lors de ces conversions car la précision d'une valeur BigInt peut être perdue lorsque ce dernier est converti en {{jsxref("Number")}}.

+
+ +

Type

+ +

Lorsqu'on utilise typeof sur une valeur BigInt, cet opérateur renverra "bigint" :

+ +
typeof 1n === "bigint"; // true
+typeof BigInt("1") === "bigint"; // true
+ +

Lorsqu'on « enveloppe » la valeur dans un objet, on aura alors un type "object" (comme pour les autres valeurs primitives lorsqu'on les enveloppe dans le constructeur objet) :

+ +
typeof Object(1n) === "object"; // true
+ +

Opérateurs

+ +

On peut utiliser les opérateurs suivants avec les objets BigInt : +, `*`, `-`, `**`, `%` , les opérateurs binaires (à l'exception de >>> / décalage à droite avec des zéros) car les grands entiers sont signés. Le + unaire n'est pas non plus pris en charge (afin de ne pas casser asm.js).

+ +
const nombreSain = BigInt(Number.MAX_SAFE_INTEGER);
+// ↪ 9007199254740991
+
+const maxPlusUn = nombreSain + 1n;
+// ↪ 9007199254740992n
+
+const leFutur = nombreSain + 2n;
+// ↪ 9007199254740993n, cela fonctionne désormais !
+
+const multi = nombreSain * 2n;
+// ↪ 18014398509481982n
+
+const subtr = multi – 10n;
+// ↪ 18014398509481972n
+
+const mod = multi % 10n;
+// ↪ 2n
+
+const bigN = 2n ** 54n;
+// ↪ 18014398509481984n
+
+bigN * -1n
+// ↪ –18014398509481984n
+
+ +

L'opérateur / fonctionne de façon analogue aux nombres classiques. Toutefois, les objets BigInt permettent uniquement de représenter des entiers et non des nombres décimaux. Aussi, la division ne produira pas de partie décimale pour les BigInt.

+ +
const attendu = 4n / 2n;
+// ↪ 2n
+
+const tronque = 5n / 2n;
+// ↪ 2n et pas 2.5n
+
+
+ +

Comparaisons

+ +

Un objet BigInt n'est pas strictement égal à {{jsxref( "Number")}} mais peut l'être au sens de l'égalité faible.

+ +
0n === 0
+// ↪ false
+
+0n == 0
+// ↪ true
+ +

On peut toutefois comparer des objets {{jsxref("Number")}} et BigInt :

+ +
1n < 2
+// ↪ true
+
+2n > 1
+// ↪ true
+
+2 > 2
+// ↪ false
+
+2n > 2
+// ↪ false
+
+2n >= 2
+// ↪ true
+ +

On peut également mélanger ces valeurs au sein de tableaux :

+ +
const mixed = [4n, 6, -12n, 10, 4, 0, 0n];
+// ↪  [4n, 6, -12n, 10, 4, 0, 0n]
+
+mixed.sort();
+// ↪ [-12n, 0, 0n, 10, 4n, 4, 6]
+ +

On notera que les comparaisons entre les valeurs BigInt et les mêmes valeurs, passées dans le constructeur Object() ne seront pas équivalentes au sens strict :

+ +
0n === Object(0n); // false
+Object(0n) === Object(0n); // false
+
+const o = Object(0n);
+o === o; // true
+ +

Opérations conditionnelles

+ +

Un objet BigInt se comporte comme un objet {{jsxref("Number")}} lorsqu'il est utilisé dans un contexte booléen : comme argument pour le constructeur {{jsxref("Boolean")}}, comme opérandes pour les opérateurs logiques ||, `&&` et ! ou avec les instructions conditonnelles telles que if.

+ +
if (0n) {
+  console.log('Nous voici dans le if !');
+} else {
+  console.log('Et nous voilà dans le else !');
+}
+
+// ↪ "Et nous voilà dans le else !"
+
+0n || 12n
+// ↪ 12n
+
+0n && 12n
+// ↪ 0n
+
+Boolean(0n)
+// ↪ false
+
+Boolean(12n)
+// ↪ true
+
+!12n
+// ↪ false
+
+!0n
+// ↪ true
+
+ +

Méthodes

+ +
+
BigInt.asIntN()
+
Écrète un objet BigInt pour obtenir un entier signé entre -2^(largeur-1) et 2^(largeur-1)-1
+
BigInt.asUintN()
+
Écrète un objet BigInt pour obtenir un entier non-signé entre 0 et 2^(largeur)-1
+
+ +

Propriétés

+ +
+
{{jsxref("BigInt.prototype")}}
+
Cette propriété permet d'ajouter des propriétés aux objets BigInt.
+
+ +

Instances de BigInt

+ +

L'ensemble des instances de BigInt héritent de BigInt.prototype. Le prototype du constructeur BigInt peut être modifié afin de modifier l'ensemble des instances de BigInt.

+ +

Méthodes

+ +

{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/prototype', 'Méthodes')}}

+ +

Recommandations

+ +

Coercition en Number

+ +

Lorsqu'on convertit une valeur BigInt en {{jsxref("Objets_globaux/Number","Number")}}, on perd en précision. Si on effectue des allers-retours entre ces deux types, on ne conservera pas la même valeur. Aussi, il est recommandé d'utiliser uniquement BigInt lorsque les valeurs qu'on manipule seront supérieures à 2^53 et qu'il ne sera pas nécessaire de passer d'un type à l'autre.

+ +

Cryptographie

+ +

Les opérations prises en charge pour les valeurs BigInt ne s'effectuent pas à temps constant. Aussi, BigInt ne serait être utilisé à des fins cryptographiques.

+ +

Exemples

+ +

Calculer des nombres premiers

+ +
function isPrime(p) {
+  for (let i = 2n; i * i <= p; i++) {
+    if (p % i === 0n) return false;
+  }
+  return true;
+}
+
+// Takes a BigInt as an argument and returns a BigInt
+function nthPrime(nth) {
+  let maybePrime = 2n;
+  let prime = 0n;
+
+  while (nth >= 0n) {
+    if (isPrime(maybePrime)) {
+      nth -= 1n;
+      prime = maybePrime;
+    }
+    maybePrime += 1n;
+  }
+
+  return prime;
+}
+
+nthPrime(20n)
+// ↪ 73n
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtat
BigIntBrouillon de niveau 3
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.html b/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.html deleted file mode 100644 index 05c8d2860a..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.html +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: BigInt.prototype.toLocaleString() -slug: Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString -tags: - - BigInt - - Internationalisation - - Intl - - JavaScript - - Méthode - - Prototype - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/toLocaleString ---- -
{{JSRef}}
- -

La méthode toLocaleString() renvoie une chaîne de caractères représentant le grand entier pour la ou les locale(s) indiquée(s).

- -
{{EmbedInteractiveExample("pages/js/bigint-tolocalestring.html")}}
- -

Syntaxe

- -
bigIntObj.toLocaleString([locales [, options]])
- -

Paramètres

- -
-
locales {{optional_inline}}
-
Une chaine de caractères avec un identifiant de langue BCP 47, ou un tableau de ce type de chaine de caractères. Pour le format général et l'interprétation de l'argument locales. Pour plus de détails quant à la forme et l'interprétation de l'argument locales, on consultera la page {{jsxref("Intl")}}.
-
options {{optional_inline}}
-
Un objet qui contient des propriétés de configuration. Pour les nombres, consulter {{jsxref("Number.prototype.toLocaleString()")}}, pour les dates, consulter {{jsxref("Date.prototype.toLocaleString()")}}.
-
- -

Valeur de retour

- -

Une chaîne de caractères qui représente le grand entier selon la ou les locales et les options indiquées.

- -

Exemples

- -

Utiliser toLocaleString()

- -

Voici un exemple d'utilisation simple, sans indiquer de locale ni d'options.

- -
var bigint = 3500n;
-
-bigint.toLocaleString();
-// Affichera "3500" en français
-
- -

Utiliser locales

- -

Cet exemple illustre certaines variations pour la représentation d'une même valeur en fonction des différentes locales. En fonction de la langue utilisée par l'utilisateur et par votre interface, vous pourrez utiliser locales pour indiquer la locale ciblée :

- -
var bigint = 123456789123456789n;
-
-// En allemand, on utilise les points pour séparer
-// les milliers
-console.log(bigint.toLocaleString('de-DE'));
-// → 123.456.789.123.456.789
-
-// La plupart des pays arabes utilise
-// des chiffres hindoux-arabes
-console.log(bigint.toLocaleString('ar-EG'));
-// → ١٢٣٬٤٥٦٬٧٨٩٬١٢٣٬٤٥٦٬٧٨٩
-
-// India utilise des séparateurs pour
-// les milliers/lakh/crore
-console.log(bigint.toLocaleString('en-IN'));
-// → 1,23,45,67,89,12,34,56,789
-
-// La clé d'extension requiert un système de numérotation
-// par exemple, le système décimal chinois
-console.log(bigint.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
-// → 一二三,四五六,七八九,一二三,四五六,七八九
-
-// Lorsqu'on demande une langue qui peut ne pas être prise
-// en charge (ici le balinais), on peut ajouter une autre
-// locale qui sera utilisée en recours (ici l'indonésien)
-console.log(bigint.toLocaleString(['ban', 'id']));
-// → 123.456.789.123.456.789
-
- -

Utiliser options

- -

Ici, on personnalise le résultat fourni par toLocaleString() grâce à l'argument options :

- -
var bigint = 123456789123456789n;
-
-// On utilise un format avec une devise
-console.log(bigint.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
-// → 123.456.789.123.456.789,00 €
-
-// Le yen japonais n'utilise pas de sous-unité
-console.log(bigint.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
-// → ¥123,456,789,123,456,789
-
-// On limite l'écriture aux trois premiers chiffres significatifs
-console.log(bigint.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
-// → 1,23,00,00,00,00,00,00,000
-
- -

Performance

- -

Lorsqu'on souhaite mettre en forme une grande quantité de nombres, mieux vaudra créer un objet {{jsxref("NumberFormat")}} et utiliser la fonction fournie par sa propriété {{jsxref("NumberFormat.format")}}.

- -

Spécifications

- - - - - - - - - - - - -
SpécificationÉtat
BigIntProposition de niveau 3.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt.toLocaleString")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.md b/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.md new file mode 100644 index 0000000000..05c8d2860a --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/tolocalestring/index.md @@ -0,0 +1,129 @@ +--- +title: BigInt.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString +tags: + - BigInt + - Internationalisation + - Intl + - JavaScript + - Méthode + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/toLocaleString +--- +
{{JSRef}}
+ +

La méthode toLocaleString() renvoie une chaîne de caractères représentant le grand entier pour la ou les locale(s) indiquée(s).

+ +
{{EmbedInteractiveExample("pages/js/bigint-tolocalestring.html")}}
+ +

Syntaxe

+ +
bigIntObj.toLocaleString([locales [, options]])
+ +

Paramètres

+ +
+
locales {{optional_inline}}
+
Une chaine de caractères avec un identifiant de langue BCP 47, ou un tableau de ce type de chaine de caractères. Pour le format général et l'interprétation de l'argument locales. Pour plus de détails quant à la forme et l'interprétation de l'argument locales, on consultera la page {{jsxref("Intl")}}.
+
options {{optional_inline}}
+
Un objet qui contient des propriétés de configuration. Pour les nombres, consulter {{jsxref("Number.prototype.toLocaleString()")}}, pour les dates, consulter {{jsxref("Date.prototype.toLocaleString()")}}.
+
+ +

Valeur de retour

+ +

Une chaîne de caractères qui représente le grand entier selon la ou les locales et les options indiquées.

+ +

Exemples

+ +

Utiliser toLocaleString()

+ +

Voici un exemple d'utilisation simple, sans indiquer de locale ni d'options.

+ +
var bigint = 3500n;
+
+bigint.toLocaleString();
+// Affichera "3500" en français
+
+ +

Utiliser locales

+ +

Cet exemple illustre certaines variations pour la représentation d'une même valeur en fonction des différentes locales. En fonction de la langue utilisée par l'utilisateur et par votre interface, vous pourrez utiliser locales pour indiquer la locale ciblée :

+ +
var bigint = 123456789123456789n;
+
+// En allemand, on utilise les points pour séparer
+// les milliers
+console.log(bigint.toLocaleString('de-DE'));
+// → 123.456.789.123.456.789
+
+// La plupart des pays arabes utilise
+// des chiffres hindoux-arabes
+console.log(bigint.toLocaleString('ar-EG'));
+// → ١٢٣٬٤٥٦٬٧٨٩٬١٢٣٬٤٥٦٬٧٨٩
+
+// India utilise des séparateurs pour
+// les milliers/lakh/crore
+console.log(bigint.toLocaleString('en-IN'));
+// → 1,23,45,67,89,12,34,56,789
+
+// La clé d'extension requiert un système de numérotation
+// par exemple, le système décimal chinois
+console.log(bigint.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
+// → 一二三,四五六,七八九,一二三,四五六,七八九
+
+// Lorsqu'on demande une langue qui peut ne pas être prise
+// en charge (ici le balinais), on peut ajouter une autre
+// locale qui sera utilisée en recours (ici l'indonésien)
+console.log(bigint.toLocaleString(['ban', 'id']));
+// → 123.456.789.123.456.789
+
+ +

Utiliser options

+ +

Ici, on personnalise le résultat fourni par toLocaleString() grâce à l'argument options :

+ +
var bigint = 123456789123456789n;
+
+// On utilise un format avec une devise
+console.log(bigint.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
+// → 123.456.789.123.456.789,00 €
+
+// Le yen japonais n'utilise pas de sous-unité
+console.log(bigint.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
+// → ¥123,456,789,123,456,789
+
+// On limite l'écriture aux trois premiers chiffres significatifs
+console.log(bigint.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
+// → 1,23,00,00,00,00,00,00,000
+
+ +

Performance

+ +

Lorsqu'on souhaite mettre en forme une grande quantité de nombres, mieux vaudra créer un objet {{jsxref("NumberFormat")}} et utiliser la fonction fournie par sa propriété {{jsxref("NumberFormat.format")}}.

+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationÉtat
BigIntProposition de niveau 3.
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt.toLocaleString")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.html b/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.html deleted file mode 100644 index 4fbc9eab99..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: BigInt.prototype.toString() -slug: Web/JavaScript/Reference/Global_Objects/BigInt/toString -tags: - - BigInt - - JavaScript - - Méthode - - Prototype - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toString -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/toString ---- -
{{JSRef}}
- -

The toString() method returns a string representing the specified {{jsxref("BigInt")}} object. The trailing "n" is not part of the string.

- -
{{EmbedInteractiveExample("pages/js/bigint-tostring.html")}}
- -

Syntaxe

- -
bigIntObj.toString([base])
- -

Paramètres

- -
-
base{{optional_inline}}
-
Ce paramètre optionnel est compris entre 2 et 36 et indique la base à utiliser pour représenter les valeurs numériques.
-
- -

Valeur de retour

- -

Une chaîne de caractères représentant l'objet {{jsxref("BigInt")}} courant.

- -

Exceptions

- -
-
{{jsxref("RangeError")}}
-
Si la base fournie comme argument toString() est inférieure à 2 ou supérieure à 36, cela déclenchera une exception {{jsxref("RangeError")}}.
-
- -

Description

- -

L'objet {{jsxref("BigInt")}} surcharge la méthode toString() de {{jsxref("Object")}}. Il n'hérite pas ou n'utilise pas {{jsxref("Object.prototype.toString()")}}. Pour les objets {{jsxref( "BigInt")}}, la méthode toString() renvoie une représentation textuelle de l'objet dans la base indiquée.

- -

La méthode toString() analyse le premier argument qui lui est passé et tente de renvoyer une représentation textuelle dans cette base. Pour les bases supérieures à 10, ce seront les lettres de l'alphabet pour indiquer les chiffres supérieurs à 9. Pour les nombres hexadécimaux (base 16), les lettres a à f sont utilisées par exemple.

- -

Si l'argument base n'est pas indiquée, ce sera la base 10 qui sera considérée par défaut.

- -

Si bigIntObj est négatif, le signe est conservé, y compris lorsque la base est 2 (dans ce cas, la chaîne renvoyée sera la représentation binaire précédée par un signe - et non le complément à deux de bigIntObj).

- -

Exemples

- -

Utiliser toString()

- -
17n.toString();      // '17'
-66n.toString(2);     // '1000010'
-254n.toString(16);   // 'fe'
--10n.toString(2);    // -1010'
--0xffn.toString(2);  // '-11111111'
-
- -

Gestion du zéro négatif en BigInt

- -

Il n'existe pas de zéro négatif pour BigInt car les entiers ne gèrent pas de concept de zéro négatif. -0.0 est un concept relatif à la représentation flottante IEEE et n'est présent que pour le type {{jsxref("Number")}}.

- -
(-0n).toString();      // '0'
-BigInt(-0).toString(); // '0'
- -

Spécifications

- - - - - - - - - - - - -
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt.toString")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.md b/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.md new file mode 100644 index 0000000000..4fbc9eab99 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/tostring/index.md @@ -0,0 +1,94 @@ +--- +title: BigInt.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/BigInt/toString +tags: + - BigInt + - JavaScript + - Méthode + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/toString +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/toString +--- +
{{JSRef}}
+ +

The toString() method returns a string representing the specified {{jsxref("BigInt")}} object. The trailing "n" is not part of the string.

+ +
{{EmbedInteractiveExample("pages/js/bigint-tostring.html")}}
+ +

Syntaxe

+ +
bigIntObj.toString([base])
+ +

Paramètres

+ +
+
base{{optional_inline}}
+
Ce paramètre optionnel est compris entre 2 et 36 et indique la base à utiliser pour représenter les valeurs numériques.
+
+ +

Valeur de retour

+ +

Une chaîne de caractères représentant l'objet {{jsxref("BigInt")}} courant.

+ +

Exceptions

+ +
+
{{jsxref("RangeError")}}
+
Si la base fournie comme argument toString() est inférieure à 2 ou supérieure à 36, cela déclenchera une exception {{jsxref("RangeError")}}.
+
+ +

Description

+ +

L'objet {{jsxref("BigInt")}} surcharge la méthode toString() de {{jsxref("Object")}}. Il n'hérite pas ou n'utilise pas {{jsxref("Object.prototype.toString()")}}. Pour les objets {{jsxref( "BigInt")}}, la méthode toString() renvoie une représentation textuelle de l'objet dans la base indiquée.

+ +

La méthode toString() analyse le premier argument qui lui est passé et tente de renvoyer une représentation textuelle dans cette base. Pour les bases supérieures à 10, ce seront les lettres de l'alphabet pour indiquer les chiffres supérieurs à 9. Pour les nombres hexadécimaux (base 16), les lettres a à f sont utilisées par exemple.

+ +

Si l'argument base n'est pas indiquée, ce sera la base 10 qui sera considérée par défaut.

+ +

Si bigIntObj est négatif, le signe est conservé, y compris lorsque la base est 2 (dans ce cas, la chaîne renvoyée sera la représentation binaire précédée par un signe - et non le complément à deux de bigIntObj).

+ +

Exemples

+ +

Utiliser toString()

+ +
17n.toString();      // '17'
+66n.toString(2);     // '1000010'
+254n.toString(16);   // 'fe'
+-10n.toString(2);    // -1010'
+-0xffn.toString(2);  // '-11111111'
+
+ +

Gestion du zéro négatif en BigInt

+ +

Il n'existe pas de zéro négatif pour BigInt car les entiers ne gèrent pas de concept de zéro négatif. -0.0 est un concept relatif à la représentation flottante IEEE et n'est présent que pour le type {{jsxref("Number")}}.

+ +
(-0n).toString();      // '0'
+BigInt(-0).toString(); // '0'
+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt.toString")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.html b/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.html deleted file mode 100644 index 92a6e74350..0000000000 --- a/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: BigInt.prototype.valueOf() -slug: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf -tags: - - BigInt - - JavaScript - - Method - - Prototype - - Reference - - valueOf() -translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf -original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/valueOf ---- -
{{JSRef}}
- -

La méthode valueOf() renvoie la valeur primitive encapsulée dans un objet {{jsxref("BigInt")}}.

- -
{{EmbedInteractiveExample("pages/js/bigint-valueof.html")}}
- -

Syntaxe

- -
bigIntObj.valueOf()
- -

Valeur de retour

- -

Un grand entier (big int) représentant la valeur primitive de l'objet {{jsxref("BigInt")}} courant.

- -

Exemples

- -

Utiliser valueOf()

- -
typeof Object(1n); // object
-typeof Object(1n).valueOf(); // bigint
-
- -

Spécifications

- - - - - - - - - - - - -
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.BigInt.valueOf")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.md b/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.md new file mode 100644 index 0000000000..92a6e74350 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/bigint/valueof/index.md @@ -0,0 +1,59 @@ +--- +title: BigInt.prototype.valueOf() +slug: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf +tags: + - BigInt + - JavaScript + - Method + - Prototype + - Reference + - valueOf() +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/valueOf +original_slug: Web/JavaScript/Reference/Objets_globaux/BigInt/valueOf +--- +
{{JSRef}}
+ +

La méthode valueOf() renvoie la valeur primitive encapsulée dans un objet {{jsxref("BigInt")}}.

+ +
{{EmbedInteractiveExample("pages/js/bigint-valueof.html")}}
+ +

Syntaxe

+ +
bigIntObj.valueOf()
+ +

Valeur de retour

+ +

Un grand entier (big int) représentant la valeur primitive de l'objet {{jsxref("BigInt")}} courant.

+ +

Exemples

+ +

Utiliser valueOf()

+ +
typeof Object(1n); // object
+typeof Object(1n).valueOf(); // bigint
+
+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationÉtat
Proposition pour BigIntProposition de niveau 3
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.builtins.BigInt.valueOf")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf