जेसक्रिप्ट बिगइंट

कोर्स सिफारिश:

JavaScript BigInt वेरियेबल बड़े इंटीजर मानों को संग्रहीत करने के लिए उपयोग किए जाते हैं जो सामान्य JavaScript नंबर के रूप में प्रदर्शित नहीं किए जा सकते।

JavaScript पूर्णांक निश्चयता

JavaScript पूर्णांक की निश्चयता की सबसे अधिक लंबाई 15 डिजिट है:

पूर्णांक निश्चयता
let x = 999999999999999;

अपने आप साबित करें

let y = 9999999999999999;

JavaScript में सभी नंबर 64 बिट फ्लॉटिंग पॉइंट फॉर्मेट (IEEE 754 स्टैंडर्ड) में संग्रहीत होते हैं。

इस मानक के अनुसार,बड़े इंटीजर को सटीक रूप से प्रदर्शित नहीं किया जा सकता है और गणना की जाती है。

  • सबसे बड़ा 9007199254740991(253-1)
  • सबसे छोटा -9007199254740991(-(253-1))

इस दायरे से बाहर के पूर्णांक मान की निश्चितता खो जाती है。

कैसे BigInt बनाया जाता है

BigInt बनाने के लिए इंटीजर के अंत में n، या बुल BigInt() फ़ंक्शन:

उदाहरण 1

let x = 9999999999999999;
let y = 9999999999999999n;

अपने आप साबित करें

उदाहरण 2

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

अपने आप साबित करें

BigInt: एक नया JavaScript डाटा प्रकार

BigInt का JavaScript टाइप "bigint":

उदाहरण

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

अपने आप साबित करें

BigInt JavaScript में दूसरा नंबर डाटा प्रकार है (Number के बाद)

BigInt के लिए JavaScript में समर्थित डाटा प्रकारों की कुल संख्या 8 है:

  1. String
  2. Number
  3. Bigint
  4. Boolean
  5. Undefined
  6. Null
  7. Symbol
  8. Object

BigInt ऑपरेटर

JavaScript Number के ऑपरेटर को BigInt पर भी लागू किया जा सकता है。

BigInt गुणा का उदाहरण

let x = 9007199254740995n;
let y = 9007199254740995n;
let z = x * y;

अपने आप साबित करें

注意

不允许在 BigInt 和 Number 之间进行算术运算(类型转换会丢失信息)。

BigInt 无法进行无符号右移操作(>>>),因为它没有固定的宽度。

BigInt दशमलवी

BigInt में दशमलवी नहीं हो सकता。

BigInt विभाजन इस्पेक्ट

let x = 5n;
let y = x / 2;
// त्रुटि: BigInt और अन्य तरीकों को मिलाना नहीं होता, स्पष्ट रूप से परिवर्तन करें.
let x = 5n;
let y = Number(x) / 2;

अपने आप साबित करें

BigInt छहवीं संख्या, आठवीं संख्या और द्विपद

BigInt को छहवीं संख्या, आठवीं संख्या या द्विपद संख्या में भी लिखा जा सकता है:

BigInt छहवीं संख्या इस्पेक्ट

let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;

अपने आप साबित करें

चौड़ाता जानकारी

राउंडिंग करने से कार्यक्रम की सुरक्षा को खतरा हो सकता है:

MAX_SAFE_INTEGER इस्पेक्ट

9007199254740992 === 9007199254740993; // लूटा है!!!

अपने आप साबित करें

ब्राउज़र समर्थन

2020 वर्ष 9 महीने से लेकर, सभी ब्राउज़रों ने BigInt को समर्थन करना शुरू किया है:

Chrome Edge Firefox Safari Opera
Chrome 67 Edge 79 Firefox 68 Safari 14 Opera 54
2018 वर्ष 5 महीने 2020 वर्ष 1 महीने 2019 वर्ष 7 महीने 2020 वर्ष 9 महीने 2018 वर्ष 6 महीने

सबसे छोटा और सबसे बड़ा सुरक्षित नंबर

ES6 ने Number ऑब्जेक्ट को max और min गुणों को जोड़ा है:

  • MAX_SAFE_INTEGER
  • MIN_SAFE_INTEGER

MAX_SAFE_INTEGER इस्पेक्ट

let x = Number.MAX_SAFE_INTEGER;

अपने आप साबित करें

MIN_SAFE_INTEGER इस्पेक्ट

let x = Number.MIN_SAFE_INTEGER;

अपने आप साबित करें

नए नंबर विधियाँ

ES6 ने 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।