// 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