[ES6] 21. Symbol

fe.syhan·2023년 10월 31일

JS 기초

목록 보기
49/52
post-thumbnail

Symbol


let symbolData = Symbol('Description');

Symbol() 를 이용하여 파라미터로 해당 설명을 적는다.

어디에 쓰는가?

Symbol은 Object 자료형에 비밀스런 key값을 부여할 때 쓴다.

Object 자료형에는 문자로만 key값을 입력할 수 있다.

문자가 아닌 자료형을 입력하면 자동으로 문자로 치환된다.

그런데 Symbol도 key값이 될 수 있다.

person[심볼명] = 데이터;

var person = { name : 'Kim' };
person.weight = 100;

var weight = Symbol('내 진짜 몸무게');
person[weight] = 200;

console.log(person);
// {name: 'Kim', weight: 100, Symbol(내 진짜 몸무게): 200}

이 자료는 반목문을 사용해 출력하려고 해도 나오지 않는다.

**직접입력하기**

var height = Symbol('내 키임');

var person = { name : 'Kim', [height] : 160 };

대괄호를 활용해 직접 담아줄수 있다.

특징

  1. 설명이 같다고 같은 객체가 아니다.

    var a = Symbol('설명1');
    var b = Symbol('설명1');
    console.log(a === b); // false

    a 와 b의 설명이 같음에도 서로 다른 객체이다.

    Symbol() 이라고 사용할 때 마다 각각 유니크한 객체가 생성된다.

  2. 전역심볼

    var a = Symbol.for('설명1');
    var b = Symbol.for('설명1');
    console.log(a === b); // true

    Symbol.for() 로 새로운 Symbol을 만들 때 설명이 같으면 이미 그 설명을 가지고 있는 Symbol을 그 자리에 집어 넣는다.

  3. 기본 내장 Symbol

    Array, Object 자료형을 만들 때 기본 Symbol들이 안에 생긴다.

    array 자료형은 [Symbol.iterator] 라는 심볼이 있다.

0개의 댓글