JavaScript의 객체에 키가 있는지 확인
- 요소 직접 액세스 방법을 사용하여 객체 키가 JavaScript에 있는지 확인
-
in
연산자를 사용하여 객체 키가 JavaScript에 있는지 확인합니다 -
hasOwnProperty
메서드를 사용하여 객체 키가 JavaScript에 있는지 확인합니다 -
underscore
라이브러리를 사용하여 객체 키가 JavaScript에 있는지 확인하십시오

이 튜토리얼에서는 여러 방법을 사용하여 JavaScript에 키가 있는지 확인하는 방법을 배웁니다.
요소 직접 액세스 방법을 사용하여 객체 키가 JavaScript에 있는지 확인
키가있는 경우 undefined
를 반환해서는 안됩니다. undefined
를 반환하는지 여부를 확인하기 위해 키에 직접 액세스 할 수 있으며 object
스타일과 대괄호 액세스 스타일의 두 가지 스타일로 수행 할 수 있습니다.
다음 예에서는 대괄호 스타일을 사용하여 키에 직접 액세스하여 키가 있는지 확인하는 방법을 보여줍니다.
let myObject = {
"mykey1" : "My Value 1",
"mykey2" : "My Value 2"
};
function isKeyExists(obj,key){
if( obj[key] == undefined ){
return false;
}else{
return true;
}
}
let result0 = isKeyExists(myObject,"mykey0")
console.log("Check for the non-existing key, is key exists > "+result0)
let result1 = isKeyExists(myObject,"mykey1")
console.log("Check for the existing key, is key exists > "+result1)
출력:
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
직접 액세스로 키를 확인하는 기타 스타일은 객체 스타일을 사용하는 것입니다. 다음 예에서는 JavaScript에서 해당 키 존재를 확인하는 방법을 볼 수 있습니다.
let myObject = {
mykey1 : "My Value 1",
mykey2 : "My Value 2"
};
let result = myObject.mykey0 != undefined
console.log("Is myKey0 exists ? "+result)
let result1 = myObject.mykey1 != undefined
console.log("Is myKey1 exists ? "+result1)
출력:
Is myKey0 exists ? false
Is myKey1 exists ? true
직접 키 액세스를 사용하여 undefined
을 확인하는 단점 중 하나는 키의 값이 undefined
과 같을 수 있다는 것입니다. 해당 방법의 문제를 보여주기 위해 다음 예제를 보겠습니다.
let myObject = {
mykey0 : undefined,
mykey1 : "My Value 1"
};
let result = myObject.mykey0 != undefined
console.log("Is myKey0 exists? "+result)
let result1 = myObject.mykey1 != undefined
console.log("Is myKey1 exists? "+result1)
출력:
Is myKey0 exists? false
Is myKey1 exists? true
위의 경우의 해결책은 정의되지 않은 값으로 초기화하고 싶을 때 속성에 undefined
를 할당하지 않고 대신 null
로 초기화하는 것입니다.
undefined
값을 사용하여 키를 초기화해야하는 경우 in
연산자, hasOwnProperty
메소드 또는 underscore
라이브러리 _.has
메소드를 사용해야합니다.
in
연산자를 사용하여 객체 키가 JavaScript에 있는지 확인합니다
in
연산자는 대상 객체에서 키를 찾을 수없는 경우false
를 반환하는 데 사용되며 발견되면true
를 반환합니다.
let myObject = {
favoriteDish : "Spaghetti",
language : "English"
}
function isKeyExists(obj,key){
return key in obj;
}
console.log("Does language key exists? "+isKeyExists(myObject, "language"))
console.log("Does nationality key exists? "+isKeyExists(myObject, "nationality"))
출력:
Does language key exists? true
Does nationality key exists? false
hasOwnProperty
메서드를 사용하여 객체 키가 JavaScript에 있는지 확인합니다
객체에 특정 속성 키가 포함되어 있는지 확인하는 또 다른 방법은hasOwnProperty
메서드를 사용하는 것입니다. 다음 예에서는hasOwnProperty
메소드를 사용하는 방법을 보여줍니다.
let myObject = {
favoriteDish : "Spaghetti",
language : "English"
}
function isKeyExists(obj,key){
return obj.hasOwnProperty(key);
}
console.log("Does the object have language key? "+isKeyExists(myObject, "language"))
console.log("Does the object have nationality key? "+isKeyExists(myObject, "nationality"))
출력:
Does the object have language key? true
Does the object have nationality key? false
underscore
라이브러리를 사용하여 객체 키가 JavaScript에 있는지 확인하십시오
이미underscore
라이브러리 메서드를 사용하고 있다면_.has()
메서드를 사용할 수 있습니다. 객체에 제공된 키가 있으면true
를 반환하고 그렇지 않으면false
를 반환하므로_.has()
메서드를 사용할 수 있습니다.
let myObject = {
favoriteDish : "Spaghetti",
language : "English"
}
console.log("Check using underscore library if the object has language key? "+_.has(myObject,"language"))
console.log("Check using underscore library if the object has nationality key? "+_.has(myObject,"nationality"))
출력:
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
여기에서 라이브러리를 가져올 수 있습니다.
관련 문장 - JavaScript Object
- JavaScript의 배열에서 객체 검색
- JavaScript 배열의 객체 업데이트
- JavaScript에서 객체 복사
- JavaScript의 객체 안의 객체
- JavaScript 객체를 JSON으로 변환
- JavaScript 객체의 키 가져오기