上一周小編因為自己的事情,沒有持續更新,還望大家諒解,趁着今天醒得早,小編繼續和大家學(si)習(ke)es11中的新語法。在js中,對整數類型的數據,存在着最大極限,這個極限就是
const max = 2**53 // js冪運算 console.log(max) // 9007199254740992
同樣,為了計算的准確性,js也定義了最大安全整數,這個整數是
console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991
當我們的項目需要的數字很大的時候,會出現這樣的烏龍事件
const max = 2**53 // js冪運算 console.log(max === max+1) // true const num = 9007199254740993 console.log(num) // 9007199254740992
為了解決這樣的問題,es11中提出了一個新的基本類型,bigint。在使用的時候,可以有兩種方法。
一、直接添加字母n,就像這樣
const num = 9007199254740993n console.log(num) // 9007199254740993n console.log(typeof num) // bigint
雖然是一種新的數據類型,但是有些“規矩”還是要遵守,比如
console.log(1n==1) // true 只要值相等,返回true console.log(1n===1) // false 必須值和類型都相等,才返回false
二、小編理解的類似構造函數,就像這樣
const num = BigInt(9007199254740993n) console.log(num) // 9007199254740993n
同樣,bigint類型也可以進行我們認知內的運算,就像這樣
const num1 = BigInt(9007199254740993n) const num2 = BigInt(9007199254740993n) console.log(num1+num2) // 18014398509481986n
數據范圍是擴大了,但是每次數字后面跟個n,看着總感覺怪怪的,為了達到視覺上的美感,我們可以將bigint轉為字符串數據類型,就像這樣
const num = BigInt(18014398509481986n) console.log(num.toString()) // 18014398509481986
同樣,我們需要轉換成bigint的時候,通過BigInt再轉換一次就可以了
const str = '18014398509481986' console.log(BigInt(str)) // 18014398509481986n
大家還可以掃描二維碼,關注我的微信公眾號,蝸牛全棧