# JavaScript BigInt

Summary: in this tutorial, you’ll learn about the `BigInt` type which is the built-in object that can represent whole numbers larger than 253 – 1.

## Introduction to the JavaScript BigInt

ES2020 introduced a new built-in object called `BigInt` that allows you to represent whole numbers larger `253 - 1`.

The `bigint` is the primitive type like `number`, `string`, `symbol`, `boolean` `undefined`, and `null`.

To make a `BigInt`, you append `n` to the end of the number literal, for example:

``let bigInt = 9007199254740991n;`Code language: JavaScript (javascript)`

Alternatively, you can call the function `BigInt()`:

``let bigInt = BigInt(9007199254740991);`Code language: JavaScript (javascript)`

See the following calculation with a `Number`:

``````let x = Number.MAX_SAFE_INTEGER;
x = x + 1; // 9007199254740992
x = x + 1; // 9007199254740992 (same as above)```Code language: JavaScript (javascript)```

and with a `BigInt`:

``````let x = BigInt(Number.MAX_SAFE_INTEGER);
x = x + 1; // 9007199254740992n
x = x + 1; // 9007199254740993n (correct now)```Code language: JavaScript (javascript)```

### Type

The type of a `BigInt` is `bigint`. For example:

``````console.log(typeof bigInt); // bigint
console.log(typeof BigInt(100) === 'bigint'); // true```Code language: JavaScript (javascript)```

### Operators

The `BigInt` supports the following operator `+`, `*`, `-`, `**`, `%`, bitwise operators except `>>>` (zero-fill right shift). It doesn’t support the unary operator (`+`).

The `/` operator will also work with the whole numbers. However, the result will not return any fractional digits. For example:

``````let result = 3n / 2n;
console.log(result); // 1n, not 1.5n```Code language: JavaScript (javascript)```

### Comparisons

A `BigInt` is not strictly equal (`===`) to a `Number`:

``console.log(1n === 1); // false`Code language: JavaScript (javascript)`

However, a `BigInt` is loosely equal to a number when you use the `==` operator:

``console.log(1n == 1); // true    `Code language: JavaScript (javascript)`

You can use the `<`, `<=`, `>`, `>=` to compare a `BigInt` with a `Number`:

``````console.log(1n < 2); // true
console.log(2n > 1); // true
console.log(2n >= 2); // true```Code language: JavaScript (javascript)```

### Conditionals

A `BigInt` is converted to a `Boolean` via the `Boolean()` function in conditionals such as `if` statement or logical operators `||`, `&&,` `!`. In other words, it works like a `Number` in these cases. For example:

``````let count = 0n;

if(count) {
console.log(true);
} else {
console.log(false);
}
```Code language: JavaScript (javascript)```

## Summary

• The `BigInt` is a new primitive type that can represent whole numbers bigger than `253 - 1`, which is the largest number Javascript can reliably represent with the `number` type.
• Добавьте `n` к целому числу или используйте функцию `BigInt()` для создания `bigint`.

Оцените статью 