https://youtu.be/E9uCNn6BaGQ
https://ko.javascript.info/symbol
코딩앙마님 강의와 모던 자바스크립트를 보고 정리한 내용입니다.
const a = Symbol();
const b = Symbol();
생긴 건 똑같아도 각각 다른 식별자임
console.log(a === b); //false
Symbol() 괄호 안에 설명을 넣을 수 있다.
설명이 똑같아도 각각 다른 식별자다.
const id = Symbol("id");
const id2 = Symbol("id");
console.log(id === id2) //false
Symbol.keyFor()
을 통해 키 값을 알아낼 수 있다.const id1 = Symbol.for("id");
const id2 = Symbol.for("id");
console.log(id1 === id2); //true
Symbol.keyFor(id1) //id
Object.keys()
Object.values()
Object.entries()
for...in
은 순회할 때 키가 심볼형인 프로퍼티는 건너뜀Object.assign()
은 심볼형까지 복사됨!const user = {
name: "Mike",
age: 30
};
const showName = Symbol("show name");
user[showName] = function () {
console.log(this.name);
};
user[showName](); //Mike
//user[showName] 부분은 건너뜀
for (let key in user) {
console.log(`His ${key} is ${user[key]}`);
//His name is Mike
//His age is 30
}