// https://github.com/tc39/proposal-bigint const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER); // ↪ 9007199254740991 const maxPlusOne = previousMaxSafe + 1n; // ↪ 9007199254740992n const theFuture = previousMaxSafe + 2n; // ↪ 9007199254740993n, this works now! const multi = previousMaxSafe * 2n; // ↪ 18014398509481982n // `–` is not minus sign, // SIC https://github.com/tc39/proposal-bigint#operators // const subtr = multi – 10n; // ↪ 18014398509481972n const mod = multi % 10n; // ↪ 2n const bigN = 2n ** 54n; // ↪ 18014398509481984n bigN * -1n // ↪ –18014398509481984n 0n === 0 // ↪ false 0n == 0 // ↪ true 1n < 2 // ↪ true 2n > 1 // ↪ true 2 > 2 // ↪ false 2n > 2 // ↪ false 2n >= 2 // ↪ true const mixed = [4n, 6, -12n, 10, 4, 0, 0n]; // ↪ [4n, 6, -12n, 10, 4, 0, 0n] mixed.sort(); // ↪ [-12n, 0, 0n, 10, 4n, 4, 6] if (0n) { console.log('Hello from the if!'); } else { console.log('Hello from the else!'); } // ↪ "Hello from the else!" 0n || 12n // ↪ 12n 0n && 12n // ↪ 0n Boolean(0n) // ↪ false Boolean(12n) // ↪ true !12n // ↪ false !0n // ↪ true const view = new BigInt64Array(4); // ↪ [0n, 0n, 0n, 0n] view.length; // ↪ 4 view[0]; // ↪ 0n view[0] = 42n; view[0]; // ↪ 42n // Highest possible BigInt value that can be represented as a // signed 64-bit integer. const max = 2n ** (64n - 1n) - 1n; view[0] = max; view[0]; // ↪ 9_223_372_036_854_775_807n view[0] = max + 1n; view[0]; // ↪ -9_223_372_036_854_775_808n // ^ negative because of overflow 1n + 2 // ↪ TypeError: Cannot mix BigInt and other types, use explicit conversions 1n * 2 // ↪ TypeError: Cannot mix BigInt and other types, use explicit conversions +1n // ↪ TypeError: Cannot convert a BigInt value to a number Number(1n) // ↪ 1 1n + '2' // ↪ "12" '2' + 1n // ↪ "21" const badPrecision = BigInt(9007199254740993); // ↪9007199254740992n const goodPrecision = BigInt('9007199254740993'); // ↪9007199254740993n const alsoGoodPrecision = 9007199254740993n; // ↪9007199254740993n