다른 언어의 딕셔너리와 유사하게 사용 가능하며 key, value, property를 갖는다.
const superman = {
name : "clark",
age : 33,
}
superman.name // "clark"
superman["age"] // 33
superman.gender = "male";
superman["hairColor"] = "black";
delete superman.hairColor;
const name = "clark";
const age = 33;
const superman = {
name : name,
age : age,
}
위의 코드는 아래의 코드와 동일한 의미를 가진다, key 값과 사용한 변수명이 같다면 아래와 같이 단축해서 사용할 수 있다.
const name = "clark";
const age = 33;
const superman = {
name,
age,
}
superman.birthDay; // undefined
"birthDay" in superman; // false
"age" in superman; // true
생성자 함수
비슷한 객체를 여러개 생성하기 쉬워짐
let a = "age";
const user = {
name : "Mike",
[a] : 30 // age : 30
}
object.assign() : 객체 복제
const user = {
name : "Mike",
age : 30
}
const cloneUser = user; // 객체가 복사되는 것이 아니라 참조 값만 복사되어 들어간다
const newUser = object.assign({}, user); // {} 빈객체이자 초기값 두번째 매개변수 부터 들어온 값들이 초기값에 병합되는데 초기값이 비어있으므로 결과적으로는 복제 된다
object.keys() : 키 배열 반환
object.values() : 값 배열 반환
유일한 식별자를 만들때 사용
const a = Symbol();
const b = Symbol();
console.log(a)
Symbmol()
console.log(b)
Symbol()
a === b; // false
a == b; // flase
const id = Symbol("id"); // Symbol 에 대한 설명 가능, 디버깅시 유용
const id = Symbol("id");
const id2 = Symbol("id"); // 이렇게 id를 같게 만들어도
id === id2 // false
id == id2 // false