Programing/JavaScript

javascript Object 의 property가 있는지 체크하는 여러 방법

리커니 2021. 10. 27. 17:38
반응형

javascript Object 의 property가 있는지 체크하는 여러 방법

 

1. typeof 사용

 

const obj = {
    name : "geonlee",
    age : 36
}

if(typeof obj.name === "undefined"){
	console.log(false);
}else{
	console.log(true);
}

 

객체의 속성이 없을 경우 선언하지 않은 값에 접근하게 되어, undefined 가 됩니다.

typeof 를 사용하여 undefined 인지를 확인할 수 있습니다.

 

2. hasOwnProperty

 

const obj = {
    name : "geonlee",
    age : 36
}

if(!obj.hasOwnProperty("name")){
	console.log(false);
}else{
	console.log(true);
}

 

객체의 prototype에 존재하는 hasOwnProperty 함수를 사용하여 체크할 수도 있습니다.

hasOwnProperty 함수는 객체가 property를 가지고 있는지를 boolean type으로 리턴합니다.

 

특히 어떠한 속성에 접근할 때 hasOwnProperty를 활용하면 프로토타입 체인에 걸친 전체 검색으로 인한 성능저하를 막을 수 있습니다.

 

 

3. in 연산자 사용

 

const obj = {
    name : "geonlee",
    age : 36
}

if("name" in obj){
    console.log(false);
}else{
    console.log(true);
}

 

in 연산자를 사용해서도 property의 존재유무를 확인할 수 있습니다.

hasOwnProperty와 같이 boolean type 리턴합니다.

 

위의 3가지 방법을 알고는 있데, 가장 정석적인 방법인 hasOwnProperty를 사용하도록 합시다!

 

 

반응형