BigInt

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