BigInt

BigInt Primes เป็นสิ่งที่เพิ่งเพิ่มเข้ามาสำหรับ JavaScript ซึ่งอนุญาตให้ดำเนินการทางคณิตศาสตร์กับตัวเลขที่อยู่นอกช่วง ได้รับอนุญาตจาก Number หากต้องการสร้าง BigInt ให้เพิ่ม n ต่อท้ายจำนวน หรือส่งผ่านค่าจำนวนเต็มหรือสตริงตัวเลขไปยังฟังก์ชัน BigInt()

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

ในตัวอย่างนี้ 9999999999999999 อยู่นอกช่วงของตัวเลขที่สามารถ แสดงด้วย Number อย่างปลอดภัย ซึ่งทำให้เกิดข้อผิดพลาดในการปัดเศษ

ค่า BigInt จะไม่สืบทอดเมธอดและพร็อพเพอร์ตี้จากออบเจ็กต์ Number ให้ และไม่สามารถใช้กับเมธอดที่ JavaScript ในตัวของ Math ให้ไว้ สิ่งสำคัญที่สุดคือ คุณไม่สามารถผสม BigInt และ Number การดำเนินการทางคณิตศาสตร์มาตรฐาน:

9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number

หากต้องการคำนวณเลขคณิตด้วย BigInts คุณต้องกำหนดตัวถูกดำเนินการทั้งสองเป็นค่า BigInt ดังนี้

console.log( 9999999999999999 + 10 );  // Off by one
> 10000000000000010

console.log( 9999999999999999n + 10n );
> 10000000000000009n