ES2015 Symbol & Number 타입
ES2015에서 부터 정수 리터럴을 이용해 8진수와 2진수를 표현할 수 있게 되었습니다. 그리고 Symbol을 사용해 실행 컨텍스트 내에서 고유하고 불변인 값을 정의할 수 있게 되었습니다.
숫자
기존 JavaScript에서는 10진수와 16진수의 표현만 가능했었지만 ES2015에서는 2진수와 8진수를 표현하는 정수 리터럴 표기법이 추가되었습니다.
기존 자바스크립트에서 숫자 앞에 0을 붙이는 것으로 모호하게 8진수를 사용하는 경우도 있었지만 ES2015에서 부터는 명확하게 0o
를 숫자앞에 붙이는 것으로 8진수를 사용할 수 있습니다.
// 8진수(Octal) - 숫자 앞에 0o을 붙여서 표기
> 0o123
83
// 2진수(Binary) - 숫자 앞에 0b을 붙여서 표기
> 0b101
5
Symbol
Symbol은 ECMAScript 2015 부터 추가된 원시 자료형의 하나입니다. 심볼은 고유하고 변경할 수 없는 값을 정의하는데 사용되며, 이러한 특성을 이용해서 객체의 프로퍼티 식별자로도 사용할 수 있습니다.
심볼은 아래와 같이 생성합니다.
const sym = Symbol();
아래 예에서와 같이 Symbol()
을 호출하여 생성한 값은 모두 유일한 값이되며 변경할 수 없습니다. 그리고 typeof
연산자를 사용해 심볼의 데이터 타입을 확인해 보면 Symbol
이라는 새로운 데이터 타입으로 정의된 것을 확인할 수 있습니다.
const foo = Symbol();
const bar = Symbol();
console.log(foo === bar); //-> false
console.log(typeof foo); //-> Symbol
심볼을 생성할 때 Symbol()
에 인수를 전달하여 설명을 추가할 수 있습니다.
const alice = Symbol("Alice");
console.log(alice); //-> Symbol(Alice)