BigInt in JavaScript

BigInt is a built-in object in JavaScript that provides a way to represent whole numbers larger than 253-1. The largest number that JavaScript can reliably represent with the Number primitive is 253-1, which is represented by the MAX_SAFE_INTEGER constant. This has various uses where operations on large numbers are required.

Syntax:

BigInt( number ) 
or
Appending n to end of an integer literal

Parameters: It accepts a single integer literal as string that needs to represent as BigInt.

Return Type: This method returns the given value as BigInt data type.

Example: This example creating a BigInt using the BigInt() function.



javascript

filter_none

edit
close

play_arrow

link
brightness_4
code

// Parameter in decimal format
var bigNum = BigInt(
  "123422222222222222222222222222222222222");
console.log(bigNum);
  
// Parameter in hexadecimal format
var bigHex = BigInt("0x1ffffffeeeeeeeeef");
console.log(bigHex);
  
// Parameter in binary format
var bigBin = BigInt(
  "0b1010101001010101001111111111111111");
console.log(bigBin);

chevron_right


Output: 

123422222222222222222222222222222222222n
36893488074118328047n
11430854655n

Example: This example creating a BigInt by appending n at the end of the number.

javascript

filter_none

edit
close

play_arrow

link
brightness_4
code

// Decimal format
var bigNum = 123422222222222222222222222222222222222n
console.log(bigNum)
  
// Hexadecimal format
var bigHex = 0x1ffffffeeeeeeeeefn
console.log(bigHex)
  
// Binary format
var bigBin = 0b1010101001010101001111111111111111n
console.log(bigBin)

chevron_right


Output: 

123422222222222222222222222222222222222n
36893488074118328047n
11430854655n

Comparing BigInt other types: A BigInt is similar to a Number in some ways, however, it cannot be used with methods of the builtin Math object and cannot be mixed with instances of Number in operations.

Example: Comparing BigInt with a Number.

typeof 100n === 100        // Returns false
typeof 100n ==  100        // Returns true due to coercion
typeof 100n === 'bigint'   // Returns true
100n < 101                 // Returns true due to coercion

Sorting: An array can hold both primitive data types and BigInts. This allows the sort() method to work when both normal Number and BigInt values are present in the array.

Example:

javascript

filter_none

edit
close

play_arrow

link
brightness_4
code

// Array consisting of both
// Number and BigInt
var arr = [4, 2, 5n, 2n]
  
// Sorting the array
arr.sort()
  
console.log(arr)  // [2, 2n, 4, 5n]

chevron_right


Output:

[2, 2n, 4, 5n]

Usage Recommendation: The following applications are not recommended to be used with BigInt due to its implementation:

  1. Coercion: Coercing between Number and BigInt can lead to loss of precision, it is recommended to only use BigInt when values greater than 253 are reasonably expected and not to coerce between the two types.
  2. Cryptography: The operations supported on BigInt are not constant time. BigInt is therefore unsuitable for use in cryptography.

Supported Browsers: The browsers supporting BigInt method are listed below:

  • Chrome
  • Edge
  • Firefox
  • Opera

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.