ES6 스터디 정리 : SYMBOL

Llux lux·2022년 5월 20일
0

ES6 스터디

목록 보기
11/21

Symbol 이란?

자바스크립트 es6에 추가된 원시 데이터 타입이다.

Symbol 은 고유한 데이터이다.

const a = Symbol("id");
const b = Symbol("id");

console.log(a === b);
//a 와 b 는 다르므로 false 이다.

Symbol 은 생성자에서 하나의 파라미터를 가진다.
이것은 Value 가 아니며 설명을 나타내는 문자열이다.

Object 의 key로 사용

Symbol 을 선언하고 object 의 Key 로 사용 할 수 있다.
string 으로 키를 선언했다면 동일한 키를 선언해서 덮어씌우는 경우가 생길수 있지만
Symbol 로 선언하면 unique 하기 때문에 그런 케이스가 생기지 않는다.

let admin = {
	name : "gildong"
};

let id = Symbol("id");
admin[id] = 1;

console.log(admin[id]);

Object literal 안에서도 Symbol 을 사용 할 수 있다.

const ID = Symbol("id");

let admin = {
	name : "gildong",
    [ID] : 123
  	//상수개념으로 사용되므로 대문자로 설정한다.
};

Symbol 은 열거되지 않는다.

객체를 for 문으로 열거할 때 Symbol 은 제외가 된다.

const ID = Symbol("id");

let admin = {
	name : "gildong",
    [ID] : 123
};

for(key in admin) console.log(key);
//name 만 열거된다.

Symbol 을 열거하는 방법

Object.getOwnPropertySymbols() 를 사용하여 Symbol 을 가져올 수 있다.

Object.getOwnPropertySymbols(obj).forEach(el=>console.log(el))
profile
하하하

0개의 댓글