참조타입이 독립적인 값을 저장하지 않는 이유: 비효율을 방지하기 위해서
symbol
변경 불가능한 원시 타입!
주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키(property key)를 만들기 위해 사용함.
YOU DON'T KONW JS (this와 객체 프로토타입, 비동기와 성능) - 카일 심슨 [한빛미디어] 70p
ES6부터 계산된 프로퍼티명(Computed Property Names)이라는 기능이 추가되었으며 Symbol에서 많이 사용할 수 있을 것!
var prefix = "foo";
var myObject = {
//prefix + "bar": "hello",
//위와 같이 사용하면 예상하지 못한 '+'라며 SyntaxError가 뜬다.
[prefix + "bar"]: "hello",
//하지만 위와 같이 []로 계산식을 묶어주면 Error가 뜨지 않는다!!!
[prefix + "baz"]: "world"
};
myObject["foobar"]; //hello
myObject["foobaz"]; //world
이제 object의 key값을 넣을 때 에도 계산을 할 수 있다!!!