BigInt JavaScript
Rekomendasi Kursus:
Variabel BigInt JavaScript digunakan untuk menyimpan nilai integer yang terlalu besar untuk digunakan dengan bilangan biasa JavaScript.
Kemampuan Akurasi Integer JavaScript
Integer JavaScript hanya dapat diakurasi hingga 15 digit:
Kemampuan Akurasi Integer let x = 999999999999999;
let y = 9999999999999999;
Dalam JavaScript, semua bilangan disimpan dalam format floating-point 64-bit (Standar IEEE 754).
Dengan standar ini, bilangan besar tidak dapat disampaikan dengan akurasi, akan diukur semula.
- yang paling besar adalah 9007199254740991(253-1)
- yang paling kecil adalah -9007199254740991(-(253-1))
Nilai integer di luar rentang ini akan kehilangan akurasi.
Bagaimana membuat BigInt
Untuk membuat BigInt, tambahkan n
atau panggil BigInt()
Fungsi:
Contoh 1
let x = 9999999999999999; let y = 9999999999999999n;
Contoh 2
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt: Jenis data baru JavaScript
Tipe JavaScript untuk BigInt adalah "bigint
:
Contoh
let x = BigInt(999999999999999); let type = typeof x;
BigInt adalah jenis data numerik kedua di JavaScript (setelah Number).
Untuk BigInt, jumlah jenis data yang didukung JavaScript adalah 8 jenis:
- String
- Number
- Bigint
- Boolean
- Tidak Ditentukan
- Null
- Symbol
- Objek
Operator BigInt
Operator yang boleh digunakan untuk bilangan Number JavaScript juga boleh digunakan untuk BigInt.
Contoh Pembaruan BigInt
let x = 9007199254740995n; let y = 9007199254740995n; let z = x * y;
Perhatian
Tidak diizinkan untuk melakukan operasi aritmetik antara BigInt dan Number (konversi tipe akan hilang informasi).
BigInt tidak dapat melakukan operasi shift arah kanan tak beraturan (>>>), karena dia tidak memiliki lebar yang tetap.
Desimal BigInt
BigInt tidak dapat memiliki bilangan desimal.
Contoh perpajakan BigInt
let x = 5n; let y = x / 2; // Error: Tidak dapat campur BigInt dan tipe lain, gunakan konversi yang jelas.
let x = 5n; let y = Number(x) / 2;
BigInt heksadesimal, oktal dan biner
BigInt juga dapat ditulis dalam bentuk heksadesimal, oktal atau biner:
Contoh BigInt heksadesimal
let hex = 0x20000000000003n; let oct = 0o400000000000000003n; let bin = 0b100000000000000000000000000000000000000000000000000011n;
Kecurigaan Presisi
Penyesuaian mungkin akan mengancam keselamatan program:
Contoh MAX_SAFE_INTEGER
9007199254740992 === 9007199254740993; // untuk benar !!!
Dukungan pelayar
Dari September 2020, semua pelayar mendukung BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mei 2018 | Januari 2020 | Juli 2019 | September 2020 | Juni 2018 |
Bilangan bulat yang aman paling kecil dan paling besar
ES6 menambahkan properti max dan min kepada objek Number:
MAX_SAFE_INTEGER
MIN_SAFE_INTEGER
Contoh MAX_SAFE_INTEGER
let x = Number.MAX_SAFE_INTEGER;
Contoh MIN_SAFE_INTEGER
let x = Number.MIN_SAFE_INTEGER;
Method angka baru
ES6 juga menambahkan dua method baru kepada objek Number:
Number.isInteger()
Number.isSafeInteger()
Number.isInteger() 方法
如果参数是整数,则 Number.isInteger() 方法返回 true
。
isInteger() 实例
Number.isInteger(10); Number.isInteger(10.5);
Number.isSafeInteger() 方法
安全整数是可以精确表示为双精度数的整数。
如果参数是安全整数,则 Number.isSafeInteger() 方法返回 true
。
isSafeInteger() 实例
Number.isSafeInteger(10); Number.isSafeInteger(12345678901234567890);
安全整数是从 -(253 - 1) 到 +(253 - 1) 的所有整数。
这是一个安全整数:9007199254740991。这不是一个安全整数:9007199254740992。