【ES11(2020)】新增数据类型 BigInt
在 ES10 增加了新的原始數據類型:BigInt,表示一個任意精度的整數,可以表示超長數據,可以超出2的53次方。
Js 中 Number類型只能安全的表示-(2^53-1) 至 2^53-1范的值。
可以用在一個整數字面量后面加 n的方式定義一個 BigInt ,如:10n,或者調用函數BigInt()。
const theBiggestInt = 9007199254740991n;const alsoHuge = BigInt(9007199254740991); // 9007199254740991nconst hugeString = BigInt("9007199254740991"); // 9007199254740991nconst hugeHex = BigInt("0x1fffffffffffff"); // 9007199254740991nconst hugeBin = BigInt("0b11111111111111111111111111111111111111111111111111111"); // 9007199254740991n它在某些方面類似于 Number ,但是也有幾個關鍵的不同點:
- 不能用于 Math 對象中的方法;
- 不能和任何 Number實例混合運算,兩者必須轉換成同一種類型。在兩種類型來回轉換時要小心,因為 BigInt 變量在轉換成 Number 變量時可能會丟失精度。
運算
以下操作符可以和BigInt 一起使用:
 +、*、-、**、%
除 >>>(無符號右移)之外的 位操作 也可以支持。因為 BigInt 都是有符號的, >>> (無符號右移)不能用于 BigInt。
 為了兼容 asm.js ,BigInt 不支持單目 (+) 運算符。
/ 操作符對于整數的運算也沒問題。可是因為這些變量是BigInt而不是 BigDecimal,該操作符結果會向零取整,也就是說`不會返回小數部分。
當使用 BigInt 時,帶小數的運算會被取整。
const expected = 4n / 2n; // 2nconst rounded = 5n / 2n; // 2n 不是2.5nBigInt 和 Number 比較
BigInt和 Number 不是嚴格相等的,但是寬松相等的。
0n === 0 // false0n == 0 // trueNumber和BigInt 可以進行比較
1n < 2 // true2n > 1 // true2 > 2 // false2n > 2 // false2n >= 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]靜態方法
 BigInt.asIntN() 將 BigInt 值轉換為一個 -2width-1 與 2width-1-1 之間的有符號整數。
BigInt.asUintN() 將一個 BigInt 值轉換為 0 與 2width-1 之間的無符號整數。
實例方法
 BigInt.prototype.toLocaleString() 返回此數字的 language-sensitive 形式的字符串。覆蓋 Object.prototype.toLocaleString() 方法。
BigInt.prototype.toString() 返回以指定基數(base)表示指定數字的字符串。覆蓋 Object.prototype.toString() 方法。
BigInt.prototype.valueOf() 返回指定對象的基元值。 覆蓋 Object.prototype.valueOf() 方法。
JSON中使用
對任何 BigInt 值使用JSON.stringify()都會引發TypeError,因為默認情況下 BigInt 值不會在 JSON 中序列化。但是,如果需要,可以實現 toJSON方法:
BigInt.prototype.toJSON = function() { return this.toString(); }JSON.stringify(BigInt(1)); // "1"總結
以上是生活随笔為你收集整理的【ES11(2020)】新增数据类型 BigInt的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Windows10 cmd输入pytho
- 下一篇: 论文公式编号右对齐_公式对齐(二):公式
