BigInt ya JavaScript
- Kabla Adui ya JS
- Pya Method ya adui ya JS
JavaScript BigInt 变量用于存储太大而无法用普通 JavaScript 数字表示的大整数值。
Hisia ya namba ya JavaScript
Hisia ya namba ya JavaScript inaweza kuwa kina kwa 15 chaguo zaidi:
Adabu ya hisia ya namba
let x = 999999999999999; let y = 9999999999999999;
Kwa JavaScript, vitabu vya hisia vyote vinazotumika kwa muundo wa kina 64 (standari ya IEEE 754).
Kwa masababu haya, namba kubwa zinaungwa kwa nafasi kwa kusaidia nafasi.
Kwa sababu ya masababu hizi, JavaScript inaweza kusaidia kumazuri namba kubwa sana zilizotumiwa kwa kufikia nafasi kwa kusaidia nafasi.
- Inafikia 9007199254740991(253-1)
- Inaingia ,53-1))
Adabu za namba zilizotumiwa zimekaa nafasi kwa uadilifu.
Husaidia kumengenia BigInt
Kwa kumengenia BigInt, inafaa kuongeza kwa uendelevu wa namba n
,au kusaidia BigInt()
Funguo:
Mfano 1
let x = 9999999999999999; let y = 9999999999999999n;
Mfano 2
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt: Aina ya hisia ya JavaScript ya kina
Aina ya JavaScript ya BigInt ni "bigint
:
Mfano
let x = BigInt(999999999999999); let type = typeof x;
BigInt ni aina ya hisia ya namba ya pili katika JavaScript (katika kufuatia Number).
Kwa BigInt, mawendo ya aina ya hisia ya JavaScript ina uainishaji wa 8 aina:
- String
- Number
- Bigint
- Boolean
- Undefined
- Null
- Symbol
- Object
Tofauti za hisia ya BigInt
Tofauti ya hisia ya JavaScript Number inaweza kutumika pia kwa BigInt.
Mfano wa kipendenia ya BigInt
let x = 9007199254740995n; let y = 9007199254740995n; let z = x * y;
Kujaonesha
Hataru kufanyia matokeo ya uharibifu kati ya BigInt na Number (michakato wa ujenzi unaweza kumaliza habari).
BigInt haaminwa kufanyia uharibifu wa kushika kushika kwa ukishika (>>>), kwa sababu ina ukubwa wa uharibifu bila uadilifu.
Namba za kutosha ya BigInt
BigInt haaminwa na namba za kutosha.
Mfano wa uchaguzi wa BigInt
let x = 5n; let y = x / 2; // Kuchukua hatari: Haingie inasemekana kuongeza BigInt na aina nyingine, tumia ujumbe kwa kuzingatia.
let x = 5n; let y = Number(x) / 2;
Labda la BigInt, kuuoa na kuuandika kwa labda vingine
Inaweza kuandikwa kwa labda, kuuoa na kuuandika kwa labda vingine vya BigInt:
Mfano wa BigInt kwa uhusiano wa labda
let hex = 0x20000000000003n; let oct = 0o400000000000000003n; let bin = 0b100000000000000000000000000000000000000000000000000011n;
Precision Curiosity
Ukifadhi kwa nafasi inaweza kumkoronesha ukurabu wa programu:
Mfano wa MAX_SAFE_INTEGER
9007199254740992 === 9007199254740993; // Inaonekana kama true !!!
Mwongozo wa barabara
Kuanzia Septemba 2020, barabara zote zinaongeza BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
2018 Mei 5 | 2020 Januari 14 | 2019 Julai 7 | 2020 Septemba 9 | 2018 Novemba 6 |
Mifano ya kina na kikubwa ya kumtumika kwa nafasi
ES6 inayotambua vipso vya max na min kwa kifaa cha Number:
MAX_SAFE_INTEGER
MIN_SAFE_INTEGER
Mfano wa MAX_SAFE_INTEGER
let x = Number.MAX_SAFE_INTEGER;
Mfano wa MIN_SAFE_INTEGER
let x = Number.MIN_SAFE_INTEGER;
Vifaa vya numbering mpya
ES6 inayotambua vifaa vingine vya Number:
Number.isInteger()
Number.isSafeInteger()
Methodi ya Number.isInteger()
Kama thamani ni inani, methodi ya Number.isInteger() inatumia watu watu
.
Mivuno wa isInteger()
Number.isInteger(10); Number.isInteger(10.5);
Methodi ya Number.isSafeInteger()
Inani za haki ni inani ambayo inaweza kuelewa kwa thamani ya juu ya juu ya adui.
Kama thamani ni inani ya haki, methodi ya Number.isSafeInteger() inatumia watu watu
.
Mivuno wa isSafeInteger()
Number.isSafeInteger(10); Number.isSafeInteger(12345678901234567890);
Inani za haki ni inani za kuzaliwa kwa -(253 - 1) hadi +(253 - 1) ya kila inani.
Hii ni inani ya haki:9007199254740991. Hii si inani ya haki:9007199254740992.
- Kabla Adui ya JS
- Pya Method ya adui ya JS