比较运算符判断大小关系(返回 true/false),逻辑运算符组合多个条件。
核心三种:
① > < >= <= == === != !==——比较大小和相等
② &&——并且,两边都 true 才 true
③ ||——或者,一边 true 就 true
④ !——取反,true 变 false
坑:== 和 === 区别、&& || 短路、! 优先级最高。
把两个数放一起比大小,结果永远只有两个:true(对)或 false(错)。
| 符号 | 人话 |
|---|---|
| > < >= <= | 大于 / 小于 / 大于等于 / 小于等于 |
| === | 全等:值一样、类型也一样才算对 |
| !== | 不全等 |
| == | 相等(会偷偷变类型,禁止用) |
// true(20 比 18 大) 20 > 18; // false(一个是数字、一个是文字,类型不同) 18 === "18"; // true(== 偷偷变类型,很坑) null == undefined; // false(=== 老老实实比) null === undefined;
如果你图省事用 == 代替 ===,它会偷偷把两边类型变一样再比,于是 "18"==18 居然是 true。这种暗坑出 bug 极难查。项目里强制只用 === 和 !==,永远别用 ==。
| 符号 | 意思 | 规则 |
|---|---|---|
| && 与 | 并且 | 两边都对,才对 |
| || 或 | 或者 | 只要有一边对,就对 |
| ! 非 | 反过来 | 对变错、错变对 |
// 已登录? let isLogin = true; // 是管理员? let isAdmin = false; // 有功能权限? let hasPerm = true; // 必须"并且":已登录 并且 有权限 // true console.log(isLogin && hasPerm); // "或者":管理员 或者 有权限 // true console.log(isAdmin || hasPerm); // "取反":!已登录 = 未登录 // false console.log(!isLogin);
想让 num 在自己基础上加 5,老写法是 num = num + 5,太啰嗦,于是有了简写:
| 简写 | 等于 |
|---|---|
| += | num = num + 5 |
| -= | num = num - 5 |
| *= | num = num * 5 |
| /= | num = num / 5 |
| %= | num = num % 5 |
一行里又有加减乘除又有比较又有 &&,记不住就加括号,括号永远最先算。大概顺序从高到低:
1.() 括号( 最高, 想先算谁就括谁) 2. 一元++ --! 3. 乘除取余→ 加减 4. 比较 > < === 5. 逻辑 && → || 6. 赋值 = += (最低)
如果你把一长串 100-20*3>10 && !(5==="5")||88<100 直接写在一行,看的人(包括你自己)很容易算错。作业里这种题要先拆成 part1、part2 分步算,一步一步打印,清楚又不容易错。
① 可能在什么地方用:登录 && 有权限才进后台;金额 >= 包邮门槛;管理员 || VIP 看数据。
② 常见的问题:图省事用 ==,结果 '18'==18 误判;一长串 && || 结果算错。
③ 解决思路:强制只用 ===;复杂条件拆成 part1、part2 分步打印,别一行堆完。
| API | 作用 | 参数 | 返回值 | 代码示例 |
|---|---|---|---|---|
| > < >= <= | 比较两个数的大小 | 两个值 | true / false | console.log(5 > 3); // true |
| === / == | 判断两个值是否相等 | 两个值 | true / false | console.log(5 === 5); // true |
| && | 并且:两边都真才真 | 两个值 | true / false | console.log(true && false); // false |
| || | 或者:一个真就真 | 两个值 | true / false | console.log(true || false); // true |
| ! | 取反(真变假、假变真) | 一个值 | true / false | console.log(!true); // false |