Symbol
// Symbol
// 변경이 불가한 데이터
// 변수를 사용해야만 데이터를 조회하게 하여 데이터 보호의 용도로 사용
const sKey = Symbol("Hello");
const user = {
key: "일반 정보",
[sKey]: "민감한 정보", // 객체에서는 대괄호로 묶어 사용
};
console.log(user.key); // "일반 정보"
console.log(user[sKey]); // "민감한 정보"
console.log(user[Symbol("Hello")]); // undefined
// 심볼은 생성될 때마다 고유의 값을 가지고 있기 때문에
// 같은 내용으로 생성하더라도 별개의 값을 가진다.
BigInt
// BigInt
// 길이 제한이 없는 정수
// 숫자 데이터가 안정적으로 표시할 수 있는 최대치(2^53 - 1)보다 큰 정수 표현 가능
console.log(1234567890123456789012345678901234567890); // 1.2345678901234568e+39
console.log(1234567890123456789012345678901234567890n); // "1234567890123456789012345678901234567890n"
console.log(BigInt("1234567890123456789012345678901234567890")); // "1234567890123456789012345678901234567890n"
console.log(typeof 1234567890123456789012345678901234567890n); // "bigint"
// bigint와 숫자는 형 변환을 해줘야 연산할 수 있다.
const a = 11n;
const b = 22;
console.log(a + BigInt(b)); // "33n"
console.log(Number(a) + b); // 33