關於 BigInt
前言
最近發現 BigInt 這個型別,抽個空做個學習,在此做個紀錄。
內容
BigInt 是 JavaScript 用來支援位數很多的整數的方案,它比 Number 還要能處理更多的整數,但不能處理小數,範例如下
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991 console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 // let num = 1234567890123456789 * 123; let bigNum = 1234567890123456789n * 123n; console.log( num );//151851850485185200000 console.log( Number.isFinite(num) ); console.log( bigNum.toString() );//"151851850485185185047"
範例開頭先印出了 Number 的最大整數與負最大整數,接著用 Number 與 BigInt 來示範超出 Number 最大後會發生什麼事,如果要將一串數字轉成 BigInt 的話只要在數字的最後加上"n"就會變成 BigInt , Number 雖然可以正常印出數值,但其實數值是錯的!利用 Number.isFinite() 來檢查發現不會變成"false",所以 JavaScript 並不會在超出最大述職時直接變成無限大,最後 BigInt 並不能直接做列印,要透過 BigInt.toString() 才能列印數值,這點要注意。
參考資料
[ developer.mozilla.org ] BigInt
沒有留言:
張貼留言