ES2020 BigInt (JS第七大基本類型)
BigInt 是一種內置對象,它提供了一種方法來表示大於 253 - 1 的整數。這原本是 Javascript中可以用 Number 表示的最大數字。BigInt 可以表示任意大的整數。
在Js中,所以的數字都是已雙精度64位浮點格式表示,這會導致Number無法精確表示非常大的整數,會將非常大的整數四舍五入。
Number類的精確范圍在±9007199254740991內 也就是±( 2 53 ± 1 )
js的安全數值范圍和賦值范圍

定義一個BigInt
BigInt字面量:BigInt(123456)
BigInt表達式:123456n


BigInt的運算
BigInt的運算要注意,它在某些方面類似於Number,可以使用一些基本的運算符號進行數學運算。但是不能使用單目運算符(+ -)和無符號右移(>>>)。
在將BigInt轉換Number類型時如果BigInt的數值大於Number類型的安全范圍會導致精度的丟失。
BigInt不能與Number類進行直接運行,系統不會進行隱式轉換,如果需要必須手動轉換成同意類型(一般來說沒有人會用BigInt與Number直接進行運算)

BigInt在Json中的使用
對任何 BigInt 值使用 JSON.stringify() 都會引發 TypeError,因為默認情況下 BigInt 值不會在 JSON 中序列化。但是,如果需要,可以實現 toJSON 方法:


來整理一下js中的各大數據類型
七大原始數據類型:undefined null boolean string number Symbol BinInt
引用值類型(不細分):Object Array RegExp Date Math Function
