키 존재 여부 확인하기
Coddy JavaScript 여정의 논리 & 흐름 섹션에 포함된 레슨 — 65개 중 16번째.
JSON 객체에서 특정 키가 있는지 확인하려면 in 연산자 또는 hasOwnProperty()를 사용하세요. 예를 들어:
const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
console.log("Key exists!");
}
if (product.hasOwnProperty("price")) {
console.log("Key exists!");
}이것은 처리하기 전에 특정 데이터가 존재하는지 확인할 때 유용합니다.
obj.hasOwnProperty("key")은 obj가 key를 자신의 속성으로 가지고 있지 않으면 false를 반환합니다. 하지만 obj.key === undefined가 반드시 hasOwnProperty("key")가 false를 반환한다는 것을 의미하지는 않습니다. obj.key가 undefined인 경우는 두 가지가 있습니다:
- 속성이 전혀 존재하지 않음 →
hasOwnProperty("key")는false를 반환합니다. - 속성이 존재하지만
undefined값을 가짐 →hasOwnProperty("key")는true를 반환합니다.
예를 들어:
const obj1 = {};
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false
const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// true챌린지
쉬움book 객체를 매개변수로 받는 toggleBookStatus라는 함수를 작성하세요. 이 함수는 다음을 수행해야 합니다:
- book 객체에
isRead속성이 있고 그 값이true인 경우,false로 변경합니다. - book 객체에
isRead속성이 있고 그 값이false인 경우,true로 변경합니다. - book 객체에
isRead속성이 없는 경우, 해당 속성을 추가하고true로 설정합니다. - 수정된 book 객체를 반환합니다.
치트 시트
JSON 객체에서 특정 키가 있는지 확인하려면 in 연산자 또는 hasOwnProperty()를 사용하세요:
const product = { "name": "Laptop", "price": 900 };
// 'in' 연산자 사용
if ("price" in product) {
console.log("Key exists!");
}
// hasOwnProperty() 사용
if (product.hasOwnProperty("price")) {
console.log("Key exists!");
}hasOwnProperty()는 속성이 존재하면 (값이 undefined인 경우에도) true를 반환하고, 속성이 존재하지 않으면 false를 반환합니다:
const obj1 = {};
console.log(obj1.hasOwnProperty("key")); // false
const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // true직접 해보기
function toggleBookStatus(book) {
// 여기에 코드를 작성하세요
}
// 함수 외부에는 아무것도 작성하지 마세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.