심벌이란?

심벌 값의 생성

  1. 심벌과 상수

    [일반적인 상수]

    const Direction = {
        UP:1,
        DOWN:2,
        LEFT:3,
        RIGHT:4
    }
    
    const myDirection = Direction.UP;
    
    if(myDirection ===Direction.UP){
        console.log('You are up') //You are up
    }
    

    [심벌로 만든 상수]

    const Direction = {
        UP:Symbol('up'),
        DOWN:Symbol('down'),
        LEFT:Symbol('left'),
        RIGHT:Symbol('right')
    }
    
    const myDirection = Direction.UP;
    
    if(myDirection ===Direction.UP){
        console.log('You are up') //You are up
    }
    
  2. 심벌과 프로퍼티 키

    const obj = {
        [Symbol.for('mySymbol')]: 1
    };
    
    console.log(obj[Symbol.for('mySymbol')]); //1
    
  3. 심벌과 프로퍼티 은닉

    const obj = {
        [Symbol.for('mySymbol')]: 1
    };
    
    for(const key in obj){
        console.log(key); //아무것도 안나옴
    }
    
    console.log(Object.keys(obj)); //[]
    console.log(Object.getOwnPropertyNames(obj)); //[]
    
  4. 심벌과 표준 빌트인 객체 확장

    Array.prototype.sum = function (){
        return this.reduce((acc,cur)=>acc+cur,0);
    };
    
    console.log([1,2].sum()); //3
    
  5. Well-known Symbol