جاوا اسکریپت بیگ آئن
- ਪਿਛਲਾ ਪੰਨਾ JS ਨੰਬਰ
- ਅਗਲਾ ਪੰਨਾ JS ਨੰਬਰ ਮੈਟਾਡਾ
ਕੋਰਸ ਸਿਫਾਰਸ਼:
JavaScript BigInt ਪਰਿਵਾਰ ਦਾ ਵਰਗ ਵਰਗ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਪੂਰੇ ਸੰਖਿਆ ਦੇ ਮੁੱਲ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਆਮ JavaScript ਨੰਬਰ ਵਿੱਚ ਪ੍ਰਤੀਬਿੰਬਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ。
JavaScript ਪੂਰੇ ਸੰਖਿਆ ਪ੍ਰਤੀਬਿੰਬਿਤ
JavaScript ਪੂਰੇ ਸੰਖਿਆ ਦੀ ਪ੍ਰਤੀਬਿੰਬਿਤ ਸਮਰੱਥਾ 15 ਦੇ ਬਾਅਦ ਕਮ ਹੋ ਜਾਂਦੀ ਹੈ:
ਪੂਰਾ ਸੰਖਿਆ ਪ੍ਰਤੀਬਿੰਬਿਤ let x = 999999999999999;
let y = 9999999999999999;
ਜਿਵੇਂ ਕਿ JavaScript ਵਿੱਚ ਸਾਰੇ ਨੰਬਰ ਨੂੰ 64 ਬਿਟ ਫਲੌਟਿੰਗ ਪ੍ਰਫਾਰਮੈਟ (IEEE 754 ਮਿਆਰ) ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ。
ਇਸ ਮਿਆਰ ਅਨੁਸਾਰ، ਵੱਡੇ ਸੰਖਿਆ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਪ੍ਰਤੀਬਿੰਬਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਕਟੋਤੀ ਹੋ ਜਾਵੇਗੀ。
- ਸਭ ਤੋਂ ਵੱਡਾ ਹੈ 9007199254740991(253-1)
- ਸਭ ਤੋਂ ਛੋਟਾ ਹੈ -9007199254740991(-(253-1))
ਇਸ ਪੱਧਰ ਤੋਂ ਵੱਧ ਦੇ ਪੂਰੇ ਸੰਖਿਆ ਦੇ ਮੁੱਲ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਪ੍ਰਤੀਬਿੰਬਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ。
ਕਿਵੇਂ BigInt ਬਣਾਉਣਾ ਹੈ
ਜੇਕਰ ਤੁਸੀਂ BigInt ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਪੂਰਾ ਸੰਖਿਆ ਦੇ ਅੰਤ ਵਿੱਚ 0x ਜੋੜ ਸਕਦੇ ਹੋ 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 ਤੋਂ ਵੱਧ ਹੈ:
- String
- Number
- Bigint
- Boolean
- Undefined
- Null
- Symbol
- 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; // ਐਰਰਰ: ਬਿਗਇੰਟ ਅਤੇ ਹੋਰ ਪ੍ਰਕਾਰਾਂ ਨੂੰ ਮਿਸ਼ਰਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਪ੍ਰਤੀਯੋਗੀ ਤਬਦੀਲੀ ਵਰਤੋਂ.
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 ਸਾਲ ਸਤੰਬਰ ਤੋਂ ਲੈ ਕੇ ਸਾਰੇ ਬਰਾਉਜ਼ਰਾਂ ਨੇ BigInt ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:
ਚਰਾਮ | ਐਂਜਲ | ਫਾਇਰਫਾਕਸ | ਸਫਾਰੀ | ਓਪਰਾ |
---|---|---|---|---|
ਚਰਾਮ 67 | ਐਂਜਲ 79 | ਫਾਇਰਫਾਕਸ 68 | ਸਫਾਰੀ 14 | ਓਪਰਾ 54 |
2018 ਸਾਲ ਮਈ | 2020 ਸਾਲ ਜਨਵਰੀ | 2019 ਸਾਲ ਜੁਲਾਈ | 2020 ਸਾਲ ਸਤੰਬਰ | 2018 ਸਾਲ ਜੂਨ |
ਸਭ ਤੋਂ ਛੋਟੇ ਅਤੇ ਸਭ ਤੋਂ ਵੱਡੇ ਸੁਰੱਖਿਅਤ ਨੰਬਰ
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() ਮੈਥਡ ਵਾਪਸ ਠੀਕ ਹੈ
.
isInteger() ਇੰਸਟੈਂਸ
Number.isInteger(10); Number.isInteger(10.5);
Number.isSafeInteger() ਮੈਥਡ
ਸੁਰੱਖਿਅਤ ਨੰਬਰ ਹਨ ਜੋ ਕਿ ਦੋ ਪੁਲਾਂਗ ਨੰਬਰ ਵਿੱਚ ਨਿਸ਼ਚਿਤ ਰੂਪ ਨਾਲ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰ ਸਕਦੇ ਹਨ。
ਜੇਕਰ ਪੈਰਾਮੀਟਰ ਸੁਰੱਖਿਅਤ ਨੰਬਰ ਹੈ ਤਾਂ Number.isSafeInteger() ਮੈਥਡ ਵਾਪਸ ਠੀਕ ਹੈ
.
isSafeInteger() ਇੰਸਟੈਂਸ
Number.isSafeInteger(10); Number.isSafeInteger(12345678901234567890);
ਸੁਰੱਖਿਅਤ ਨੰਬਰ ਹਨ - (253 - 1) ਤੋਂ +(253 - 1) ਦੇ ਸਾਰੇ ਨੰਬਰ
ਇਹ ਇੱਕ ਸੁਰੱਖਿਅਤ ਨੰਬਰ ਹੈ: 9007199254740991।ਇਹ ਇੱਕ ਸੁਰੱਖਿਅਤ ਨੰਬਰ ਨਹੀਂ ਹੈ: 9007199254740992।
- ਪਿਛਲਾ ਪੰਨਾ JS ਨੰਬਰ
- ਅਗਲਾ ਪੰਨਾ JS ਨੰਬਰ ਮੈਟਾਡਾ