检查键是否存在
本课属于 Coddy JavaScript 学习旅程的“逻辑与流程”单元。第 16 课,共 65 课。
要检查 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 没有名为 key 的自有属性,obj.hasOwnProperty("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挑战
简单创建一个名为 toggleBookStatus 的函数,它接收一个书籍对象作为参数。这个函数应该:
- 如果书籍的
isRead属性为 true,就将它改为 false - 如果书籍的
isRead属性为 false,就将它改为 true - 如果书籍没有
isRead属性,就添加该属性并将其设为 true - 返回修改后的书籍对象
亲手试试
function toggleBookStatus(book) {
// 在这里写代码
}
// 不要在函数外写任何内容这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: JavaScript 在线编译器