Objeto BigInt

Logo Javascript

En Javascript disponemos del objeto BigInt para poder representar valores muy largos, mayores que los números enteros.

Es importante entender que el objeto Number nos crea un objeto del tipo Number, mientras que el objeto BigInt crea un tipo de dato primitivo de tipo “bignit”.

Crear un objeto BigInt

Para poder crear un número BigInt se puede hacer utilizando un literal acabado en n.

let numero = 1234567890n;

O bien utilizando el constructor del objeto BigInt, el cual recibe el valor con el número a representar con el tipo “bigint”:

let numero = BigInt(1234567890);

Este valor puede ser un número ya sea binario, decimal, hexadecimal u octal o bien podría ser una cadena: Así podemos ver los siguientes constructores.

let n2 = BigInt(1234567890);
let n3 = BigInt(0b1000);
let n4 = BigInt(0173);
let n5 = BigInt(0x7B);
let n6 = BigInt("12345");

Si ejecutamos un typeof veremos que el valor es “bigint”.

typeof numero;  // bigint

Operando con objetos BigInt

Cuando utilicemos el objeto BigInt tenemos que saber que hay varias restricciones a la hora de operar con estos valores.

Por un lado podremos utilizar los operadores aritméticos básicos como +, - , *, /, % y **.

let n1 = 12345n;
let n2 = 12345n;

console.log(n1*n2);

Y siempre tiene que ser siempre entre objetos BigInt. Es decir, no podemos mezclar valores BigInt con otros como podría ser Number.

let n1 = 12345;
let n2 = 12345n;

console.log(n1*n2); // TypeError

Además, por otro lado, tendremos la limitación de que no podemos utilizar el objeto Math con objetos BigInt.

Comparando objetos BigInt

Si hablamos de comparaciones con objetos BigInt hay que indicar que estos se pueden compara con los números normales sin mayor problema. Es por ello que podemos utilizar cualquier operador de comparación.

De esta forma podemos tener el siguiente código:

let n1 = 123n;
let n2 = 123;

if (n1 == n2) 
    console.log("Son iguales");


Mejora esta página