Menu
CoddyTech

检查键是否存在

本课属于 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
challenge icon

挑战

简单

创建一个名为 toggleBookStatus 的函数,它接收一个书籍对象作为参数。这个函数应该:

  1. 如果书籍的 isRead 属性为 true,就将它改为 false
  2. 如果书籍的 isRead 属性为 false,就将它改为 true
  3. 如果书籍没有 isRead 属性,就添加该属性并将其设为 true
  4. 返回修改后的书籍对象

亲手试试

function toggleBookStatus(book) {
    // 在这里写代码
}
// 不要在函数外写任何内容
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: JavaScript 在线编译器