Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always 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 septiembre de 2020.

Los valores BigInt representan valores numéricos que son muy grandes para ser representados por el primitivo number.

Descripción

Un valor BigInt, a veces también llamado solamente BigInt, es un primitivo bigint, creado al anexar una n al final de un literal entero o llamando a la función BigInt() (sin el operador new) y dándole un valor ded entero o un valor de cadena.

js
const previouslyMaxSafeInteger = 9007199254740991n;

const alsoHuge = BigInt(9007199254740991);
// 9007199254740991n

const hugeString = BigInt("9007199254740991");
// 9007199254740991n

const hugeHex = BigInt("0x1fffffffffffff");
// 9007199254740991n

const hugeOctal = BigInt("0o377777777777777777");
// 9007199254740991n

const hugeBin = BigInt(
  "0b11111111111111111111111111111111111111111111111111111",
);
// 9007199254740991n

Los valores BigInt son similares a los valores Number de algunas maneras, per también difieren en algunos conceptos clave: Un valor BigInt no puede ser usado con métodos del objeto integrado Math y no puede ser mezclado con un valor numérico en operaciónes; tienen que ser convertidos al mismo tipo. Tenga cuidado al convertir valores de números a BigInt y viceversa varias veces ya que la precisión de un valor BigInt puede perderse cuando se lo fuerza ser un valor numérico.

Información del tipo

Cuando se compara con typeof, un valor BigInt (el primitivo bigint) dará "bigint":

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

Un valor BigInt también se puede tomar como un Object:

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

Operadores

La mayoría de los operadores soportan BigInts, sin embargo, la mayoría no permiten la mezcla de tipos entre operandos; ambos operandos deben ser BigInt o ninguno.