Object.entries()
매개변수로 받은 obj의 enumerable속성을 [key, value] 쌍을 배열로 반환합니다.
const case1 = { a : 1, b : 2, c : 3 }
console.log(Object.entries(case1)) // [ ['a',1], ['b',2], ['c',3] ]
const case2 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(case2)); // [['2', 'b'], ['7', 'c'], ['100', 'a']]
JavaScript
복사
Object.fromEntries()
매개변수로 전달받은 키-값쌍 목록을 객체로 반환해준다. Object.entries()의 반대되는 메서드임.
const case1 = [ ['a',1], ['b',2], ['c',3] ];
console.log(Object.fromEntries(case1))//{a: 1, b: 2, c: 3}
//배열을 객체로 만들어서 반환
const case2 = [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ];
console.log(Object.fromEntries(case2))//{2: 'b', 7: 'c', 100: 'a'}
//배열을 객체로 만들어서 반환
JavaScript
복사
Object.freeze()
객체를 동결시켜 속성값을 추가하거나 변경하거나 제거를 방지함
//배열생성
const case1 = [1,2,3];
//case1를 동결시켜볼께요
Object.freeze(case1)
//배열에 2를 추가해볼께요
case1.push(1);//error
case1.pop()//error
case1[0] = 10;//error를 발생시키지 않고 조용히 넘어감 대신 변경은 안됨!!
console.log(case1[0])// 1
//case1이 동결인지 아닌지 확인해볼께요
Object.isFrozen(case1);//true
//객체생성
const case2 = { name : 'kim' }
//동결시켜보자
Object.freeze(case2)
//age속성을 추가시킨후에 case2를 출력시켜보면
case2.age = 100
console.log(case2)//{name: 'kim'}
//name속성을 삭제시킨후 콘솔을 찍어보면
delete case2.name
console.log(case2)//{name: 'kim'}
//name속성 값을 변경시킨 후 콘솔을 찍어보면
case2.name = 'park'
console.log(case2)//{name: 'kim'}
Object.defineProperties()메서드는 각 속성을 수정할지 안할지 결정할 수 있었지만
Ojbect.freeze()메서드는 모든 것을 막는다.
JavaScript
복사