[JS] Symbol, BigInt 데이터

김다빈·2023년 8월 28일
0

자바스크립트

목록 보기
19/36
post-thumbnail

📌 Symbol

  • 자바스크립트 데이터 타입의 한 종류
  • 변경이 불가한 데이터로 유일한 식별자를 만들어 데이터를 보호하는 용도로 사용 가능
  • 설명은 단순 디버깅을 위한 용도로 심볼 값과는 아무런 관계 없음
const sKey = Symbol('Hello');
const user = {
  key : '일반 정보!',
  [sKey] : '민감한 정보!'
}

console.log(user.key) //일반 정보!
console.log(user['key']) //일반 정보!
console.log(user[sKey]) //민감한 정보!
console.log(user[Symbol('Hello')]) //undefined
console.log(typeof sKey) //symbol

symbol 데이터를 가지고 있는 변수를 사용하지 않으면 절대 조회할 수 없다.

console.log(sKey === Symbol('Hello')) //false

📌 BigInt

  • 길이 제한이 없는 정수
  • 일반 숫자 데이터(Number)가 안정적으로 표현할 수 있는 최대치(253 - 1) 보다 큰 정수 표현할 수 있음
  • 정수 뒤에 n 을 붙이거나 BigInt() 를 호출해 생성
a = 11n
b = 22

console.log(a+b) //TypeError!!
console.log(Number(a) + b) //33
console.log(a + BigInt(b)) //33n

BigInt는 일반 숫자 자료형(Number)와 엄연히 다른 데이터타입이기 때문에 두 데이터 형을 더하는 연산을 하면 에러가 발생한다.

일반적으로는 BigInt를 사용할만큼 큰 숫자를 다루지 않기 때문에 평소에는 일반 숫자 데이터형을 사용하고 큰 숫자를 다룰때 BigInt 사용을 고려해 볼 것

profile
Hello, World

0개의 댓글

관련 채용 정보