Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Objetos Globais
  5. BigInt

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

BigInt

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨setembro de 2020⁩.

BigInt é um objeto nativo que fornece um modo de representar números inteiros maiores que 2^53, que é o maior número que o JavaScript consegue, com exatidão, representar com o tipo primitivoNumber.

Sintaxe

js
BigInt(value);

Parâmetros

value

O valor numérico do objeto que está sendo criado. Pode ser umastring ou um número inteiro.

Nota:Observação:BigInt() não é usado com o operadornew.

Descrição

UmBigInt é criado com a acrescentação den ao final de um inteiro literal —10n — ou chamando a funçãoBigInt().

js
const theBiggestInt = 9007199254740991n;const alsoHuge = BigInt(9007199254740991);// ↪ 9007199254740991nconst hugeString = BigInt("9007199254740991");// ↪ 9007199254740991nconst hugeHex = BigInt("0x1fffffffffffff");// ↪ 9007199254740991nconst hugeBin = BigInt(  "0b11111111111111111111111111111111111111111111111111111",);// ↪ 9007199254740991n

Isso é parecido com umNumber em algumas partes, mas difere-se em alguns assuntos importantes — ele não pode ser usado com métodos no objetoMath e não pode ser misturado em operações ou qualquer instância deNumber.

Aviso:Number eBigInt não podem ser misturados em operações — eles devem ser manipulados com o mesmo tipo.

Tenha cuidado com a conversão e desconversão de valores, visto que a precisão deBigInt pode ser perdida com a conversào paraNumber.

Informações do tipo

Quando testado comtypeof , umBigInt vai devolver "bigint":

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

Quando envolvido em umObject, umBigInt vai ser considerado como um tipo normal de "object".

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

Operadores

Os seguintes operadores podem ser usados comBigInts (ou comBigInts envolvidos em objetos):+,*,-,**,%.

js
const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER);// ↪ 9007199254740991const maxPlusOne = previousMaxSafe + 1n;// ↪ 9007199254740992nconst theFuture = previousMaxSafe + 2n;// ↪ 9007199254740993n, isso funciona agora!const multi = previousMaxSafe * 2n;// ↪ 18014398509481982nconst subtr = multi – 10n;// ↪ 18014398509481972nconst mod = multi % 10n;// ↪ 2nconst bigN = 2n ** 54n;// ↪ 18014398509481984nbigN * -1n// ↪ –18014398509481984n

O operador/ também funciona com o esperado com números inteiros. No entanto, desde que esses sejamBigInts e nãoBigDecimals, essa operação vai arredondar para 0, o que significa que não vai retornar qualquer valor fracional.

Aviso:Uma operação com um resultado fracional será arredondado comBigInt.

js
const expected = 4n / 2n;// ↪ 2nconst rounded = 5n / 2n;// ↪ 2n, e não 2.5n

Comparações

UmBigInt não é estritamente igual a umNumber, mas é mais ou menos assim.

js
0n === 0;// ↪ false0n == 0;// ↪ true

UmNumber e umBigInt podem ser comparado normalmente.

js
1n < 2;// ↪ true2n > 1;// ↪ true2 > 2;// ↪ false2n > 2;// ↪ false2n >= 2;// ↪ true

Eles podem ser misturados emarrays e ordenados.

js
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]

Observe que comparações comBigInts envolvidos emObject atuam com outros objetos, indicando somente a igualdade onde a mesma instância do objeto é comparada.

js
0n === Object(0n); // falseObject(0n) === Object(0n); // falseconst o = Object(0n);o === o; // true

Condicionais

ABigInt comporta-se comoNumber nos casos onde ele é convertido para umBoolean: através da funçãoBoolean; quando usado com operadores lógicosLogical Operators||,&&, e!; ou dentro de um teste condicional como umif statement.

js
if (0n) {  console.log("Olá de um if!");} else {  console.log("Olá de um else!");}// ↪ "Olá de um else!"0n || 12n;// ↪ 12n0n && 12n;// ↪ 0nBoolean(0n);// ↪ falseBoolean(12n);// ↪ true!12n;// ↪ false!0n;// ↪ true

Métodos

BigInt.asIntN()

Limita um BigInt entre -2expoente-1 e 2expoente-1-1

BigInt.asUintN()

Limita um BigInt entre 0 e 2expoente-1

Propriedades

BigInt.prototype

Permite a adição de propriedades a um objetoBigInt.

InstânciasBigInt

Todas as instânciasBigInt são herdades de BigInt.prototype. O protótipo do objeto do construtor do BigInt pode ser modificado para afetar todas as instâncias deBigInt.

Métodos

Exemplos

Calculando números primos

js
function isPrime(p) {  for (let i = 2n; i * i <= p; i++) {    if (p % i === 0n) return false;  }  return true;}// Toma um BigInt como argumento e retorna um BigIntfunction 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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp