BigInt JavaScript
- Halaman Sebelumnya Bilangan JS
- Halaman Berikutnya Metode Bilangan JS
Rekomendasi kursus:
Variabel BigInt JavaScript digunakan untuk menyimpan nilai integer yang terlalu besar untuk digambarkan dengan angka JavaScript biasa.
Akurasi integer JavaScript
Integer JavaScript hanya dapat mencapai akurasi 15 digit:
Akurasi integer let x = 999999999999999;
let y = 9999999999999999;
Dalam JavaScript, semua angka disimpan dalam format floating-point 64-bit (standar IEEE 754).
Dengan standar ini, integer besar tidak dapat diwakili dengan akurasi penuh dan akan disingkat.
- 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: Tipe data baru di JavaScript
Tipe data JavaScript untuk BigInt adalah "bigint
:
Contoh
let x = BigInt(999999999999999); let type = typeof x;
BigInt adalah tipe data angka kedua di JavaScript (setelah Number).
Untuk BigInt, jumlah tipe data yang didukung JavaScript adalah 8:
- String
- Number
- Bigint
- Boolean
- Undefined
- Null
- Symbol
- Object
Operator BigInt
Operator untuk operasi bilangan JavaScript Number juga dapat digunakan untuk BigInt.
Contoh Perkalian BigInt
let x = 9007199254740995n; let y = 9007199254740995n; let z = x * y;
Perhatian
Tidak diizinkan untuk melakukan operasi aritmetika (konversi tipe akan hilang informasi) antara BigInt dan Number.
BigInt tidak dapat melaksanakan operasi shift arah kanan tanpa batas (>>>), karena dia tidak memiliki lebar yang tetap.
Desimal BigInt
BigInt tidak dapat memiliki angka desimal.
Contoh pengurangan BigInt
let x = 5n; let y = x / 2; // Error: Cannot mix BigInt and other types, use explicit conversion.
let x = 5n; let y = Number(x) / 2;
BigInt heksadesimal, oktal, dan biner
BigInt dapat ditulis dalam bentuk heksadesimal, oktal, atau biner:
Contoh BigInt heksadesimal
let hex = 0x20000000000003n; let oct = 0o400000000000000003n; let bin = 0b100000000000000000000000000000000000000000000000000011n;
Curiosity about Precision
Penyesuaian dapat mengancam keamanan program:
Contoh MAX_SAFE_INTEGER
9007199254740992 === 9007199254740993; // True!!!
Dukungan peramban
Sejak September 2020, semua peramban 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 terendah dan tertinggi
ES6 menambahkan properti max dan min bagi 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;
Metode bilangan baru
ES6 menambahkan dua metode baru bagi objek Number:
Number.isInteger()
Number.isSafeInteger()
Metode Number.isInteger()
Jika parameter adalah bilangan integer, metode Number.isInteger() kembali true
.
Contoh isInteger()
Number.isInteger(10); Number.isInteger(10.5);
Metode Number.isSafeInteger()
Bilangan integer aman adalah bilangan yang dapat ditunjuk dengan akurat bilangan double.
Jika parameter adalah bilangan integer aman, metode Number.isSafeInteger() kembali true
.
Contoh isSafeInteger()
Number.isSafeInteger(10); Number.isSafeInteger(12345678901234567890);
Bilangan integer aman adalah dari -(253 ke + (2) - 1)53 semua integer. - 1)
Ini adalah bilangan integer aman: 9007199254740991. Ini bukan bilangan integer aman: 9007199254740992.
- Halaman Sebelumnya Bilangan JS
- Halaman Berikutnya Metode Bilangan JS