home강의 홈으로
Section 9. 추가 자료형들
Lesson 2. BigInt

Number.MAX_SAFE_INTEGER 더 큰 정수를 다루기 위한 자료형


console.log( Number.MAX_SAFE_INTEGER );
  • number 타입으로 안정적으로 표현할 수 있는 가장 큰 정수 - 9007199254740991 (2^53 - 1)
for (let i = 0; i < 100; i++) { console.log(Number.MAX_SAFE_INTEGER + i); }

아래의 방법들로 생성

const bigInt1 = 9007199254740991n; // 끝에 n을 붙임 const bigInt2 = BigInt(9007199254740991); const bigInt3 = BigInt('9007199254740991'); const bigInt4 = BigInt(0x1fffffffffffff) // 9007199254740991 console.log( bigInt1 === bigInt2, bigInt2 === bigInt3, bigInt3 === bigInt4 ); console.log(typeof bigInt1); for (let i = 0; i < 100; i++) { console.log(bigInt1 + BigInt(i)); }



BigInt의 특징들

일반 number 타입과 산술 (+, -, *, /, %, **) 연산 불가

console.log( 1n + 1 ); console.log( 1n + 1n ); // 양쪽 모두 BigInt로 변환하여 계산하는 방법 사용 const calcAsBigInt = (x, y, op) => { return op(BigInt(x), BigInt(y)); } console.log( calcAsBigInt(1n, 1, (x, y) => x + y) );

비교 연산 가능

console.log( 1n === 1, // 타입은 다름 1n == 1, 1n < 2, 1n >= 0, 2n < 1 );

number 숫자와 섞여 정렬 가능

console.log( [4n, 7, 6n, 3, 1, 5, 9, 2n, 8n] .sort((a, b) => a > b ? 1 : -1) );

불리언으로 변환되는 연산 가능

console.log( !!(0n), !!(1n) ); 0n ? console.log('참') : console.log('거짓'); 1n ? console.log('참') : console.log('거짓');

소수점 아래는 버림

console.log( 5n / 2n );

Math의 정적 메서드에서 사용 불가

console.log( Math.max(1n, 2n) );

number로 변환 - 정확성 유실 주의!

console.log( Number(1n), Number(9007199254740993n) );

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (유료 파트) 9-2

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?