객체의 키를 변수로 접근해보자
const information = {
name: '김개발'
}
const verb = 'developes';
const project = 'facebook';
information[verb] = project; // [1]
information.developes = 'facebook'; // [2]
위와 같이 객체의 키를 변수로 접근할 수 있다.
1번과 2번 똑같은 방법이지만 차이가 있는데
1번은 변수들 verb와 project가 갖는 값에 따라 다른 키와 다른 값을 가질 수 있지만 2번은 키와 값이 항상 고정된다.
배열은 length와 인덱스로 순회가 가능했는데 객체도 순회가 가능할까?
물론, 객체도 순회가 가능하다
밑의 코드를 살펴보자
conset obj = {
name: 'melon',
weight: 4350,
price: 16500,
isFresh: true
}
for (let key in obj) {
console.log("키: ", key);
console.log("벨류: ", obj[key]);
}
이렇게 반복문을 돌려서 변수 key는 객체의 키 값이 되고 이를 이용해서 변수값도 구할 수 있다.
이렇게 객체의 키값들만, 벨류값들만 또는 키,벨류 묶어서 추출하는 것도 가능하다.
let keys = Object.keys(obj);
let values = Object.values(obj);
let = entries = Object.entreis(obj);
console.log('키값들: keys');
console.log('벨류값들: values');
console.log('키와벨류쌍: entries');
객체복사
let user = {
name: "John",
age: 30
};
let clone = {};
for (let key in user) {
clone[key] = user[key];
}
console.log(clone);
console.log(user === clone);
false가 뜨는 이유?
객체 자체가 복사된것이 아니라 그 안의 내용이 복사된 것이다.
clone과 user의 객체 주소가 다르므로 false가 뜬다.
createElement: 태그를 생성한다
요소.addEventListener(이벤트종류, function() {
//이벤트가 일어났을 때 실행할 내용
});