Menu
CoddyTech

逻辑运算符第 3 部分

本课属于 Coddy JavaScript 学习旅程的“基础知识”单元。第 21 课,共 77 课。

处理逻辑表达式时,有时我们需要对它们进行简化或重新排列。

在由 &&(and)连接的两个条件前加上 !(not),可以将它拆分成两个独立的部分。&&(and)会变成 ||(or),并且每个部分前面都会加上自己的 !(not):

!(A && B) 与 (!A) || (!B) 相同

例如:

// 我们来检查一个数字是否不在 1 到 10 之间。
let number = 15

// 这两个表达式是等价的:
let result1 = !(number >= 1 && number <= 10)
let result2 = !(number >= 1) || !(number <= 10)

console.log(result1)  // True
console.log(result2)  // True

反过来也成立:!(A || B) 和 (!A) && (!B) 是一样的。

例如:

// 检查一个人是否既不是学生,也没有工作
let is_student = false
let is_employed = false
// 这两个表达式是等价的:
let result1 = !(is_student || is_employed)
let result2 = !is_student && !is_employed

console.log(result1)  // True
console.log(result2)  // True
challenge icon

挑战

入门

你正在帮助一家宠物店创建一个系统,用来判断是否可以把宠物卖给顾客。

初始化以下变量:

  • has_license,值为 true
  • has_space,值为 false
  • has_experience,值为 true

编写以下逻辑表达式,判断:

  • can_sell_regular_pet:顾客需要有执照或经验,并且必须有空间
  • can_sell_exotic_pet:顾客需要同时有执照和经验,并且必须有空间
  • cannot_sell_any_pet:顾客没有执照也没有经验,或者没有空间

亲手试试

// 初始化变量
// 在这里声明任务中列出的三个变量

// 计算条件
// 把下面的每个占位符替换为任务描述的逻辑表达式
let can_sell_regular_pet = false
let can_sell_exotic_pet = false
let cannot_sell_any_pet = false

// 不要删除下面的代码行
console.log("Can sell regular pet:", can_sell_regular_pet)
console.log("Can sell exotic pet:", can_sell_exotic_pet)
console.log("Cannot sell any pet:", cannot_sell_any_pet)
quiz icon自我测试

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

基础知识中的所有课

自己练习: JavaScript 在线编译器