BigInt JavaScript

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;

Coba Sendiri

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 natau panggil BigInt() Fungsi:

Contoh 1

let x = 9999999999999999;
let y = 9999999999999999n;

Coba Sendiri

Contoh 2

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345);

Coba Sendiri

BigInt: Tipe data baru di JavaScript

Tipe data JavaScript untuk BigInt adalah "bigint

Contoh

let x = BigInt(999999999999999);
let type = typeof x;

Coba Sendiri

BigInt adalah tipe data angka kedua di JavaScript (setelah Number).

Untuk BigInt, jumlah tipe data yang didukung JavaScript adalah 8:

  1. String
  2. Number
  3. Bigint
  4. Boolean
  5. Undefined
  6. Null
  7. Symbol
  8. 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;

Coba Sendiri

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;

Coba Sendiri

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;

Coba Sendiri

Curiosity about Precision

Penyesuaian dapat mengancam keamanan program:

Contoh MAX_SAFE_INTEGER

9007199254740992 === 9007199254740993; // True!!!

Coba Sendiri

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;

Coba Sendiri

Contoh MIN_SAFE_INTEGER

let x = Number.MIN_SAFE_INTEGER;

Coba Sendiri

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);

Coba Sendiri

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);

Coba Sendiri

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.