Symbol

raejun·2022년 1월 8일
0

Symbol

  • 유일무일한 값(고유한 값)
  • 변경 불가능한 값

사용

  • 충돌 회피

    • 충돌 예시
    let arr = [1,2,3,4,5];
    console.log(arr.length) // 5 출력
    arr.length = 50;
    console.log(arr.length) // 50 출력
    • 회피 예시
    let arr2 = [1,2,3,4,5];
    console.log(arr2.length) // 5 출력
    const length = Symbol('length');
    arr2[length] = 50;
    console.log(arr2[length]) // 50 출력
  • 심볼은 언제나 고유한 값

    • 예시
    // 이름이 같아도 값이 다르다
    let symbol1 = Symbol('hello');
    let symbol2 = Symbol('hello');
    console.log(symbol1 === symbol2) // false
    console.log(symbol1 == symbol2) // false
  • 심볼은 for..in 구문에서 출력되지 않음

    • 배열 객체에 속성을 추가하면 for..in 출력시 해당 속성도 같이 출력
    // symbol 미사용
    let arr = [1,2,3,4,5];
    arr.someProperty = 6;
    for(let i in arr) {
      console.log(i); // 0,1,2,3,4,someProperty 출력
    }
    • 심볼로 배열 객체 속성을 추가하면 for..in 출력시 해당 속성 출력 안함(은닉화)
    // symbol 사용
    let arr = [1,2,3,4,5];
    let someProperty = Symbol('someProperty');
    arr[someProperty] = 6;
    for(let i in arr) {
      console.log(i); // 0,1,2,3,4 출력
    }
profile
정리노트

0개의 댓글