bigInt資料型別

2021-10-09 03:32:49 字數 1354 閱讀 4080

簡述

bigint資料型別提供了一種方法來表示大於2^53-1的整數。bigint可以表示任意大的整數

作用解決精度缺失的問題:bigint資料型別比number型別支援更大的整數值,number型別只能安全的支援-9007199254740991(-(2^53-1)) 和 9007199254740991(2^53-1)之間的整數,任何超過這個範圍的數值都會失去精度;而bigint可以解決這個問題(下面會講如何使用bigint)

舉例:console.log(9007199254740999) //9007199254741000

console.log(9007199254740993===9007199254740992) //true

如圖,當數值超過number資料型別支援的安全範圍值時,將會被四捨五入,從而導致精度缺失的問題

適用場景舉例

更加準確的使用時間戳和數值比較大的id

bigint如何使用

1.在整數的末尾追加n

console.log(9007199254740999n)//9007199254740999

2.呼叫bigint()建構函式

var bigint = bigint(「9007199254740999」);

console.log(bigint) //9007199254740999n

bigint建構函式

(1)傳遞給bigint()的引數將自動轉換為bigint:

bigint(「2」); // → 2n

bigint(2); // → 2n

bigint(true); // → 1n

bigint(false); // → 0n

(2)無法轉換的資料型別和值會引發異常:

bigint(10.3); // → rangeerror: cannot convert null to a bigint

bigint(null); // → typeerror: cannot convert null to a bigint

bigint(「a」); // → syntaxerror: cannot convert a to a bigint

備註:(1)bigint除了不能使用一元加號運算子外,其他的運算子都可以使用

console.log(+1n) // uncaught typeerror: cannot convert a bigint value to a number

(2)bigint和number之間不能進行混合操作

console.log(1n+5)

//uncaught typeerror: cannot mix bigint and other types, use explicit conversions

DATETIME型別和BIGINT 型別互相轉換

專案中使用bigint來存放時間,以下 用來轉換時間型別和bigint型別 set ansi nulls on goset quoted identifier on go author gga create date 2013 03 28 description 將時間型別轉化成bigint,返回指...

資料型別基礎資料型別

資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...

資料型別 基本資料型別和引用資料型別

一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...