Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 객체에 키가 있는지 확인

<시간/>

특정 키가 객체에 존재하는지 여부를 확인하는 올바른 방법을 설명해야 합니다. 올바른 방법으로 넘어가기 전에 먼저 잘못된 방법을 살펴보고 실제로 얼마나 잘못된 방법인지 살펴보겠습니다.

방법 1:정의되지 않은 값 확인(잘못된 방법)

JavaScript의 휘발성 특성으로 인해 다음과 같이 객체에 키가 있는지 확인하고 싶을 수 있습니다. -

const obj = {
name: 'Rahul'
};
if(!obj['fName']){}

또는

if(obj['fName'] === undefined){}

이 둘은 잘못된 방법입니다. 왜?

이 경우에는 'fName' 키가 없지만 의도적으로 false로 설정되거나 정의되지 않은 'fName'이 있다고 가정하기 때문입니다.

우리 함수는 키가 존재하지 않는다는 것을 반환했어야 했지만 실제로는 존재했습니다. 따라서 이러한 경우 이 방법은 실패합니다.

방법 2 - in 연산자 사용(정확한 방법)

ES6에 방금 도입된 in 키워드는 iterable의 항목을 확인합니다. 따라서 키의 존재를 확인하기 위해 다음과 같이 할 수 있습니다 -

('fName' in obj);

방법 3 - hasOwnProperty() 메서드 사용(올바른 방법)

Object.prototype.hasOwnProperty() 메서드를 사용하여 개체에 키가 포함되어 있는지 여부를 확인할 수 있습니다.

구문은 -

obj.hasOwnProperty('fName');

Way 2와 Way 3의 차이점은 Way 3은 호출된 Object 인스턴스의 속성만 확인하는 반면 'in'은 Object 인스턴스 속성과 상속된 속성(있는 경우)을 확인한다는 것입니다.