程序不只是按顺序执行语句。很多时候,它需要先判断某个条件(condition)的结果是否为 true,再决定下一步要做什么。条件判断的结果通常是布尔值(Boolean value):true 或 false。
关系运算符
关系运算符(relational operator)用于比较两个值。比较结果不是数字本身,而是一个布尔值。
JavaScript 中常见的关系运算符包括:
<:小于>:大于<=:小于等于>=:大于等于===:等于!==:不等于
一个等号 = 是赋值(assignment),两个等号 === 才是比较(comparison)。
let age = 17;
console.log(age < 18); // true
console.log(age === 18); // false
console.log(age !== 18); // trueage = 17 的意思是把 17 赋值给变量 age。age === 18 的意思是比较 age 当前的值是否等于 18。
知识测验
题目
在 JavaScript 中,哪个运算符用于判断两个值是否相等?
逻辑运算符
逻辑运算符(logical operator)用于连接多个条件。它们的结果仍然是布尔值。
&&:多个条件都为true时,整体才是true。||:多个条件中至少有一个为true时,整体就是true。!:把true变成false,把false变成true。
逻辑运算符真值表
真值表(truth table)会把所有可能的输入组合列出来,帮助你看清逻辑运算符的规则。
&& 要求左右两边都为 true,结果才是 true。
| A | B | A && B |
|---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
|| 只要求左右两边至少有一边为 true,结果就是 true。
| A | B | A || B |
|---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
! 只作用在一个布尔值上,会把结果反过来。
| A | ! A |
|---|---|
true | false |
false | true |
知识测验
题目
!false 的结果是什么?
let age = 20;
let hasTicket = true;
console.log(age >= 18 && hasTicket);
console.log(age < 18 || hasTicket);
console.log(!hasTicket);如果你把条件读成自然语言,会更容易理解:age >= 18 && hasTicket 可以读成“年龄至少 18 岁,并且有票”。
互动实验
体育馆智能检票口
访问权限免费
选择一位观众,再扫描证件和门票。只有“年龄达标”和“门票有效”同时为 true,闸机才会打开。
2 号入场通道
林安
SCAN
请扫描证件和门票
1
&&年龄验证20 >= 18 → ?
2
=门票验证hasTicket → ?
?
闸机结果等待验证
知识测验
题目
表达式 true && false 的结果是什么?
组合条件
JavaScript 使用 && 组合范围判断,需要把左右两次比较都完整写出。例如:
let age = 16;
let minor = age > 0 && age < 18;
console.log(minor);这行代码等价于:
let score = 85;
let attendance = 92;
let qualified = score >= 80 && attendance >= 90;
console.log(qualified);当条件变复杂时,建议使用括号让逻辑更清晰。
let score = 85;
let attendance = 92;
let passed = score >= 60 && attendance >= 80;
let excellent = score >= 90 || attendance >= 95;
console.log(passed) // true;
console.log(excellent) // false;不要急着把所有条件写成一行。先把每个小条件命名清楚,程序会更容易读,也更容易排错。
知识测验
题目
age = 16 时,age > 0 && age < 18 的结果是什么?