DEV Community is a community of 670,881 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

JavaScript Interview Question #44: Number vs BigInt in JS

Coderslang: Become a Software Engineer
Teaching you to code at js.coderslang.com - JavaScript, HTML, CSS, Node.js, React.js, React Native
Originally published at learn.coderslang.com ・1 min read

What happens if we add an `n` suffix to a regular number in JavaScript? What’s the output?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

In the first line we try to add two numbers. These aren’t regular numbers, but rather two instances of `BigInt` — special objects that are used to safely represent numbers bigger than `Number.MAX_SAFE_INTEGER`.

There are two ways to create `BigInt`:

• add a suffix `n` to any number in JavaScript
``````  const big = 1000000n; // 1000000n
``````
• call the constructor `BigInt(val)` and pass in a numerical value
``````  const bigN = BigInt(123) // 123n
``````

This value doesn’t have to a number. I can be a string.

``````  const bigS = BigInt("234") // 234n
``````

You can also use hex and binary notation.

``````  const bigHex = BigInt("0xffffffffffffffff") // 18446744073709551615n
const bigBin = BigInt("0b111") // 7n
``````

The `BigInt` numbers behave just like the regular ones. By adding `1n` and `2n` we get `3n`. This is `BigInt` as well, and `typeof 3n` returns a string `bigint`, which will be logged to the screen when we call `console.log`.

ANSWER: The `n` suffix turns a regular JavaScript number into a `BigInt`. The string `bigint` will be logged to the console.

Learn Full-Stack JavaScript

Discussion (2)

Cooper Riehl

Thanks for posting so many of these handy articles! I actually didn't know about the 'n' suffix, so this was a particularly helpful one for me.

Coderslang: Become a Software Engineer

I'm glad you liked it, Cooper. I'll be posting more of the same 🚀