Object.keys()
: 객체의 키(key)를 모아서 하나의 배열로 반환
// 유사 배열
const arrayLike = {
0: 'body',
1: 'head',
3: 'div',
length: 3
}
const keys = Object.keys(arrayLike);
for (let key of keys) {
console.log(key);
}
// 출력 결과
// 0
// 1
// 3
// length
Object.values()
: 객체들의 값(value)을 모아 하나의 배열로 반환
// 유사 배열
const arrayLike = {
0: 'body',
1: 'head',
3: 'div',
length: 3
}
const values = Object.values(arrayLike);
for (let value of 'hello') {
console.log(value);
}
// 출력 결과
// h
// e
// l (2)
// o
Object.entries()
: 객체의 키와 값을 하나의 쌍으로 만들어서 배열로 반환
// 유사 배열
const arrayLike = {
0: 'body',
1: 'head',
3: 'div',
length: 3
}
const entries = Object.entries(arrayLike);
for (let keyValue of entries) {
console.log(keyValue);
}
Object.is()
Object.is(value1, value2);
: 두 값이 같은지 boolean형으로 검사
- 정확히 같은 값이어야 같다고(true) 평가한다.
- 객체뿐만 아니라 숫자, 문자열, 불리언 등 다양한 데이터 타입을 비교할 때 사용할 수 있다.
const obj1 = { name: 'John' };
const obj2 = { name: 'John' };
const obj3 = obj1;
console.log(Object.is(obj1, obj2)); // false (다른 객체)
console.log(Object.is(obj1, obj3)); // true (같은 객체)
Object.freeze()
Object.freeze(obj);
: 객체를 변경할 수 없도록 동결한다.
- 동결된 객체는 새로운 속성을 추가하거나 제거하는 것을 방지한다.
const obj = {
prop: 42,
};
Object.freeze(obj);
obj.prop = 33; // error
console.log(obj.prop); // 42