JavaScript BigInt
- Önceki Sayfa JS Sayılar
- Sonraki Sayfa JS Sayısal Yöntemler
JavaScript BigInt değişkenleri, normal JavaScript sayılarıyla temsil edilemeyen büyük tam sayı değerlerini saklamak için kullanılır.
JavaScript tam sayı doğruluğu
JavaScript tam sayıları en fazla 15 basamak doğru olarak temsil edebilir:
Tam sayı doğruluğu
let x = 999999999999999; let y = 9999999999999999;
JavaScript'te tüm sayılar 64 bitlik kayan nokta formatında (IEEE 754 standardı) saklanır.
Bu standarta göre, büyük tam sayılar doğru olarak temsil edilemez ve yuvarlanır.
Bu nedenle, JavaScript sadece aşağıdaki aralık içindeki tam sayıları güvenle temsil edebilir:
- en büyük 9007199254740991(253-1)
- en küçük -9007199254740991(-(253-1))
Bu aralık dışındaki tam sayı değerleri, doğruyu kaybeder.
BigInt nasıl oluşturulur
BigInt oluşturmak için, tam sayıların sonuna n
veya çağrılabilir BigInt()
Fonksiyon:
Örnek 1
let x = 9999999999999999; let y = 9999999999999999n;
Örnek 2
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt: Yeni bir JavaScript veri türü
BigInt'in JavaScript türü "bigint
:
Örnek
let x = BigInt(999999999999999); let type = typeof x;
BigInt, Number'dan sonra JavaScript'teki ikinci sayısal veri türüdür.
BigInt için, JavaScript'te desteklenen veri türleri toplamı 8 türdür:
- String
- Number
- Bigint
- Boolean
- Undefined
- Null
- Symbol
- Object
BigInt işlevsel işlevleri
JavaScript Number işlevsel işlevleri BigInt için de kullanılabilir.
BigInt çarpanlık örneği
let x = 9007199254740995n; let y = 9007199254740995n; let z = x * y;
Dikkat
BigInt ve Number arasında aritmetik işlemler (tip dönüşümü bilgi kaybına neden olabilir).
BigInt sabit genişliğe sahip olmadığı için sağa doğru tamsayı kaydırma işlemi (>>>) yapamaz.
BigInt ondalıklı
BigInt ondalıklı olamaz.
BigInt bölme örneği
let x = 5n; let y = x / 2; // Hata: BigInt ve diğer türler karıştırılamaz, açık dönüşüm kullanın.
let x = 5n; let y = Number(x) / 2;
BigInt onaltılık, otobase ve ikili
BigInt onaltılık, otobase veya ikili temsilatla yazılabilir:
BigInt onaltılık örnek
let hex = 0x20000000000003n; let oct = 0o400000000000000003n; let bin = 0b100000000000000000000000000000000000000000000000000011n;
Precision Curiosity
Yaklaştırma program güvenliğini tehlikeye atabilir:
MAX_SAFE_INTEGER örnek
9007199254740992 === 9007199254740993; // Doğru !!!
Tarayıcı desteği
2020 yılının Eylül ayından beri tüm tarayıcılar BigInt'i destekliyor:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
2018 yılının Mayıs ayı | 2020 yılının Ocak ayı | 2019 yılının Temmuz ayı | 2020 yılının Eylül ayı | 2018 yılının Haziran ayı |
En küçük ve en büyük güvenli tam sayılar
ES6 Number nesnesine max ve min özelliklerini ekledi:
MAX_SAFE_INTEGER
MIN_SAFE_INTEGER
MAX_SAFE_INTEGER örnek
let x = Number.MAX_SAFE_INTEGER;
MIN_SAFE_INTEGER örnek
let x = Number.MIN_SAFE_INTEGER;
Yeni sayı yöntemleri
ES6 Number nesnesine iki yeni yöntem ekledi:
Number.isInteger()
Number.isSafeInteger()
Number.isInteger() yöntemi
Parametre bir tamsayıysa, Number.isInteger() yöntemi true
.
isInteger() örneği
Number.isInteger(10); Number.isInteger(10.5);
Number.isSafeInteger() yöntemi
Güvenli tamsayılar, tam olarak iki katlı sayı olarak temsil edilebilen tamsayılardır.
Parametre güvenli bir tamsayıysa, Number.isSafeInteger() yöntemi true
.
isSafeInteger() örneği
Number.isSafeInteger(10); Number.isSafeInteger(12345678901234567890);
Güvenli tamsayılar -(253 - 1) ile +(253 - 1) Tüm tamsayılar.
Bu bir güvenli tamsayıdır: 9007199254740991. Bu bir güvenli tamsayı değildir: 9007199254740992.
- Önceki Sayfa JS Sayılar
- Sonraki Sayfa JS Sayısal Yöntemler