Baseline Widely available
BigInt
ë Number
ìì ê°ì´ ìì ì ì¼ë¡ ëíë¼ ì ìë ìµëì¹ì¸ 2^53 - 1ë³´ë¤ í° ì ì를 ííí ì ìë ë´ì¥ ê°ì²´ì
ëë¤.
BigInt
ë ì ì 리í°ë´ì ë¤ì n
ì ë¶ì´ê±°ë(10n
) í¨ì BigInt()
를 í¸ì¶í´ ìì±í ì ììµëë¤.
const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// ⪠9007199254740991n
const hugeString = BigInt("9007199254740991");
// ⪠9007199254740991n
const hugeHex = BigInt("0x1fffffffffffff");
// ⪠9007199254740991n
const hugeBin = BigInt(
"0b11111111111111111111111111111111111111111111111111111",
);
// ⪠9007199254740991n
BigInt
ì Number
ë ì´ë¤ ë©´ìì ë¹ì·íì§ë§ ì¤ìí ì°¨ì´ì ì´ ììµëë¤. ì컨ë BigInt
ë ë´ì¥ Math
ê°ì²´ì ë©ìëì í¨ê» ì¬ì©í ì ìê³ , ì°ì°ìì Number
ì í¼í©í´ ì¬ì©í ì ììµëë¤. ë°ë¼ì 먼ì ê°ì ìë£íì¼ë¡ ë³íí´ì¼ í©ëë¤. ê·¸ë¬ë, BigInt
ê° Number
ë¡ ë°ëë©´ ì íì±ì ìì ì ìì¼ë 주ìí´ì¼ í©ëë¤.
BigInt
ì typeof
íë³ ê²°ê³¼ë "bigint"
ì
ëë¤.
typeof 1n === "bigint"; // true
typeof BigInt("1") === "bigint"; // true
Object
ë¡ ê°ì¼ BigInt
ë ì¼ë°ì ì¸ object
ìë£íì¼ë¡ ì·¨ê¸í©ëë¤.
typeof Object(1n) === "object"; // true
ì°ì°ì
+
, *
, -
, **
, %
ì°ì°ì를 BigInt
ë ê°ì²´ë¡ ê°ì¼ BigInt
ìì ì¬ì©í ì ììµëë¤. ë¹í¸ ì°ì°ìë ì¬ì©í ì ìì¼ë, 모ë BigInt
ë ë¶í¸ë¥¼ ê°ì ¸ì¼ íë¯ë¡ >>>
(ë¶í¸ ë²ë¦¼ ì¤ë¥¸ìª½ ìíí¸)ë ì¬ì©í ì ììµëë¤. asm.jsìì 문ì 를 ì¼ì¼í¤ì§ ìëë¡, ë¨í +
ì°ì°ìë ì§ìíì§ ììµëë¤.
const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER);
// ⪠9007199254740991
const maxPlusOne = previousMaxSafe + 1n;
// ⪠9007199254740992n
const theFuture = previousMaxSafe + 2n;
// ⪠9007199254740993n, this works now!
const multi = previousMaxSafe * 2n;
// ⪠18014398509481982n
const subtr = multi â 10n;
// ⪠18014398509481972n
const mod = multi % 10n;
// ⪠2n
const bigN = 2n ** 54n;
// ⪠18014398509481984n
bigN * -1n
// ⪠â18014398509481984n
/
ì°ì°ìë ì ì ì°ì°ìì ììí ì ìë 결과를 ëì¼íê² ëì¶í©ëë¤. ê·¸ë¬ë BigInt
ë BigDecimal
ì´ ìëë¯ë¡, ì°ì°ì ê²°ê³¼ë ì¸ì ë ììì ì´í를 ë²ë¦½ëë¤. ì¦, ì ìê° ìë ê²°ê³¼ë ëì¤ì§ ììµëë¤.
ê²½ê³ : ììì 결과를 í¬í¨íë ì°ì°ì BigInt
ì ì¬ì©íë©´ ììì ì´íë ì¬ë¼ì§ëë¤.
const expected = 4n / 2n;
// ⪠2n
const rounded = 5n / 2n;
// ⪠2.5nì´ ìëë¼ 2n
ë¹êµ
BigInt
ë Number
ì ì¼ì¹íì§ ìì§ë§ ëë±í©ëë¤.
0n === 0;
// ⪠false
0n == 0;
// ⪠true
Number
ì BigInt
ë ì¼ë°ì ì¸ ë°©ë²ì¼ë¡ ë¹êµí ì ììµëë¤.
1n < 2;
// ⪠true
2n > 1;
// ⪠true
2 > 2;
// ⪠false
2n > 2;
// ⪠false
2n >= 2;
// ⪠true
ë°°ì´ì ììë¡ í¨ê» ì¬ì©íì ë ì ë ¬ë ê°ë¥í©ëë¤.
const mixed = [4n, 6, -12n, 10, 4, 0, 0n];
// ⪠[4n, 6, -12n, 10, 4, 0, 0n]
mixed.sort();
// ⪠[-12n, 0, 0n, 10, 4n, 4, 6]
Object
ë¡ ê°ì¼ BigInt
ì ê²½ì° ë¤ë¥¸ ê°ì²´ì ë§ì°¬ê°ì§ë¡ ì기 ìì ê³¼ ë¹êµíì ëë§ ì¼ì¹í©ëë¤.
0n === Object(0n); // false
Object(0n) === Object(0n); // false
const o = Object(0n);
o === o; // true
ì¡°ê±´
BigInt
ë ë¤ìì ìí©ììë Number
ì²ë¼ íëí©ëë¤.
Boolean
í¨ì를 ì¬ì©í´ Boolean ê°ì²´ë¡ ë³í||
, &&
, !
ì í¨ê» ì¬ì©if
문 ë± ì¡°ê±´ íë³ ìif (0n) {
console.log("ifìì ìë
!");
} else {
console.log("elseìì ìë
!");
}
// ⪠"elseìì ìë
!"
0n || 12n;
// ⪠12n
0n && 12n;
// ⪠0n
Boolean(0n);
// ⪠false
Boolean(12n);
// ⪠true
!12n;
// ⪠false
!0n;
// ⪠true
ìì±ì
BigInt()
BigInt
ê°ì²´ë¥¼ ìì±í©ëë¤.
BigInt.asIntN()
주ì´ì§ BigInt
를 -2^(width - 1)
ê³¼ 2^(width - 1) - 1
ì ë²ìë¡ ìë¦
ëë¤.
BigInt.asUintN()
주ì´ì§ BigInt
를 0
ê³¼ 2^width - 1
ì ë²ìë¡ ìë¦
ëë¤.
BigInt.prototype.toLocaleString()
BigInt를 주ì´ì§ ì¸ì´ì ì í©í íí를 ê°ì§ 문ìì´ë¡ ë³íí´ ë°íí©ëë¤. Object.prototype.toLocaleString()
ë©ìë를 ì¬ì ìí©ëë¤.
BigInt.prototype.toString()
BigInt
ì ê°ì 주ì´ì§ ì§ìë¡ ííí 문ìì´ì ë°íí©ëë¤. Object.prototype.toString()
ë©ìë를 ì¬ì ìí©ëë¤.
BigInt.prototype.valueOf()
BigInt
ê°ì²´ì ìì ê° ííì ë°íí©ëë¤. Object.prototype.valueOf()
ë©ìë를 ì¬ì ìí©ëë¤.
BigInt
를 Number
ë¡ ë³ííë ê³¼ì ìì ì íë를 ì ì¤í ì ìì¼ë¯ë¡, 2^53ë³´ë¤ í° ê°ì ììí ì ìë ê²½ì° BigInt
ë§ ì¬ì©íë ê²ì´ ì¢ìµëë¤.
BigInt
ê° ì§ìíë ì°ì°ì ìììê°ì ìì ìê°ì´ ìë기 ë문ì ìí¸íì ì í©íì§ ììµëë¤.
BigInt
ë ì§ë ¬íí ì ì기 ë문ì, JSON.stringify()
ì BigInt
를 í¬í¨í ê°ì ì ë¬íë¤ë©´ TypeError
ê° ë°ìí©ëë¤. ëì , íìí ê²½ì° ìì ë§ì toJSON
ë©ìë를 ë§ë¤ ì ììµëë¤.
BigInt.prototype.toJSON = function () {
return this.toString();
};
ì´ì ìë ì½ëê° ì¤ë¥ë¥¼ ëì§ì§ ìê³ ë¬¸ìì´ì ë°íí©ëë¤.
JSON.stringify(BigInt(1));
// '"1"'
ìì ìì 구í기
// 주ì´ì§ BigIntê° ììì´ë©´ true ë°í
function isPrime(p) {
for (let i = 2n; i * i <= p; i++) {
if (p % i === 0n) return false;
}
return true;
}
// BigInt를 ë°ì, në²ì§¸ ìì를 BigIntë¡ ë°í
function nthPrime(nth) {
let maybePrime = 2n;
let prime = 0n;
while (nth >= 0n) {
if (isPrime(maybePrime)) {
nth -= 1n;
prime = maybePrime;
}
maybePrime += 1n;
}
return prime;
}
nthPrime(20n);
// ⪠73n
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4