BigInt प्रिमिटिव, JavaScript में एक नया बदलाव है. इससे, Number
में तय सीमा से बाहर की संख्याओं पर गणितीय संक्रिया करने की अनुमति मिलती है. BigInt बनाने के लिए, लिटरल वैल्यू के आखिर में n
जोड़ें या BigInt()
फ़ंक्शन में, पूर्णांक या संख्या वाली स्ट्रिंग की वैल्यू पास करें.
const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;
typeof myNumber;
> "number"
typeof myBigInt;
> "bigint"
myNumber;
> 10000000000000000
myBigInt;
> 9999999999999999n
इस उदाहरण में, 9999999999999999
अंकों की सीमा से बाहर है जिसे Number
में सुरक्षित तरीके से दिखाया जा सकता है. इसकी वजह से राउंडिंग की गड़बड़ी हो रही है.
BigInt वैल्यू, Number
ऑब्जेक्ट से मिलने वाले तरीकों और प्रॉपर्टी को इनहेरिट नहीं करतीं. साथ ही, इनका इस्तेमाल JavaScript के पहले से मौजूद Math
ऑब्जेक्ट से मिलने वाले तरीकों के साथ नहीं किया जा सकता. सबसे अहम बात यह है कि स्टैंडर्ड अंकगणित की कार्रवाइयों में BigInt और नंबर प्रिमिटिव, दोनों को शामिल नहीं किया जा सकता:
9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number
BigInts के साथ अंकगणित करने के लिए, आपको दोनों ऑपरेंड को BigInt वैल्यू के रूप में तय करना होगा:
console.log( 9999999999999999 + 10 ); // Off by one
> 10000000000000010
console.log( 9999999999999999n + 10n );
> 10000000000000009n