for (변수 선언문 in 객체) { ... }
const person = {
name: 'Jeong',
address: 'Suwon'
};
for (const key in person) {
console.log(key + ': ' + person[key]);
}
// name: Jeong
// address: Suwon
const person = {
name: 'Jeong',
address: 'Suwon'
__proto__: { age: 20 } // 프로토타입 프로퍼티
};
for (const key in person) {
console.log(key + ': ' + person[key]);
}
// name: Jeong
// address: Suwon
// age: 20
for (const key in person) {
// 객체 자신의 프로퍼티인지 확인
if (!person.hasOwnProperty(key)) continue;
console.log(key + ': ' + person[key]);
}
// name: Jeong
// address: Suwon
const obj = {
3: 3,
2: 2,
1: 1,
b: 'b',
a: 'a'
};
for (const key in obj) {
if (!obj.hasOwnProperty(key)) continue;
console.log(key + ': ' + obj[key]);
}
// 프로퍼티 키가 숫자이면 정렬
// 1: 1
// 2: 2
// 3: 3
// b: b
// a: a
const person = {
name: 'Jeong',
address: 'Suwon'
__proto__: { age: 20 }
};
console.log(Object.keys(person)); // ["name", "address"]
console.log(Object.values(person)); // ["Jeong", "Suwon"]
console.log(Object.entries(person)); // [["name", "address"], ["Jeong", "Suwon"]]
출처 : 모던 자바스크립트 Deep Dive