빈 오브젝트 ({}) 를 확인하는방법

roberto·2023년 9월 16일
0

개발을 하다보면 여러가지 이유에따라 빈객체를 확인하고 싶을때가 있습니다
Object.keys 를 사용할수도 있지만 완벽(?)한 조건문을 이용해 빈객체를 구분해봅시다

아래의 코드는 빈객체를 구분할수 있게해주는 코드입니다 하나씩 봅시다

const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object

Reflect.ownKeys


Object.keys 와 동일한 기능을하는것처럼 보이지만 차이가있습니다
둘다 배열 형태로 객체의 속성 키만을 반환 하는점은 동일하지만
Reflect.ownKeys 는 객체의 모든 속성키를 반환합니다
모든속성키에는 Symbol 키가 해당됩니다

Symbol : 데이터 타입중 하나 [라이브러리나 프레임워크에 주로 사용]
 다른 데이터 타입과 달리 유일무이한 값을가진다 (unique) 
 다른 모든 속성 키와 충돌하지 않습니다
 
const symbol1 = Symbol('unique');
const symbol2 = Symbol('unique');

console.log(symbol1 !== symbol2) //true


라이브러리 사용시 속성키로 사용하여 충돌을 방지하고 내부적으로 사용하는 속성을
숨길수 있다 
const libraryObj = {
  [Symbol('key1')]: 'value1',
  [Symbol('key2')]: 'value2'
};

obj.constructor


객체의 생성자(constructor)가 Object 인지 확인함
js 에서 객체를 생성할 때 기본적으로 사용되는 생성자는 'Object'

profile
medium 으로 이전했습니다

0개의 댓글