JavaScript 运算符与流程控制全解析
在 JavaScript 中,运算符和流程控制是实现逻辑处理的基础。本文补充 for 循环内容,全面讲解比较运算符、逻辑运算符、条件判断语句(if、switch)及循环语句(while、for),帮助你掌握 JavaScript 的逻辑构建能力。
一、运算符:自增、比较与逻辑
1. 自增运算符(++)
自增运算符分为前缀(++i)和后缀(i++),核心区别在于返回值时机:
- 后缀自增(
i++):先返回当前值,再自增 - 前缀自增(
++i):先自增,再返回新值
let i = 1;
console.log(i++ + ++i + i); // 结果为 7
// 解析:
// 1. i++ 先返回 1,i 变为 2
// 2. ++i 先自增为 3,返回 3
// 3. 此时 i=3,总和:1+3+3=7
2. 比较运算符
用于判断值的关系,返回布尔值,需重点区分 == 与 ===:
| 运算符 | 特点 | 示例 | 结果 |
|---|---|---|---|
== | 只比较值(隐式转换类型) | 2 == "2" | true(字符串转数字) |
=== | 比较值和类型(无转换) | 2 === "2" | false(类型不同) |
!= | 只比较值不相等 | 2 != "2" | false(值相等) |
!== | 比较值或类型不相等 | 2 !== "2" | true(类型不同) |
特殊规则:
- 字符串按字符编码比较(如
"a" < "b"为 true) NaN与任何值比较都返回 false(包括自身)
console.log(2 == "2"); // true(隐式转换)
console.log(2 === "2"); // false(类型不同)
console.log("aabgg" < "bzzzz"); // true(首字符 "a" < "b")
3. 逻辑运算符
组合多个条件判断,返回布尔值:
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
&& | 逻辑与(两边都真才真) | 3<5 && 3<9 | true |
| ` | ` | 逻辑或(至少一边真则真) | |
! | 逻辑非(取反) | !(2>5) | true |
真值/假值规则:
- 假值:
0、""、null、undefined、NaN - 真值:除假值外的所有值(如非空字符串、非 0 数字)
console.log(!9); // false(9 是真值)
console.log(!""); // true(空字符串是假值)
二、条件判断语句
1. if 语句
根据条件执行代码块,条件会隐式转换为布尔值:
// 语法
if (条件) {
// 条件为真时执行
} else {
// 条件为假时执行
}
// 示例:判断空格字符串是否为真
if (" ") {
// 空格字符串是真值(非空)
console.log(true);
} else {
console.log(false);
}
2. 三目运算符
if-else 的简写形式:条件 ? 表达式 1 : 表达式 2
// 判断 2 与 "2" 是否绝对相等
document.write(2 === "2" ? "相等" : "不等"); // 输出:不等
3. switch 语句
用于多条件等值判断(使用 === 比较),需配合 break 防止穿透:
let num5 = 3;
switch (num5) {
case 1:
console.log("选了 1");
break;
case 2:
console.log("选了 2");
break;
case 3:
console.log("选了 3"); // 匹配成功,输出此句
break;
default:
console.log("无匹配项");
}
// 输出:选了 3
三、循环语句
1. while 循环
根据条件重复执行代码块,continue 可跳过本次循环:
let n = 5;
while (n--) {
// n 从 5 递减到 0
if (n === 3) continue; // 跳过 n=3 的循环
document.write(`执行第${n}次<br/>`);
}
// 输出:
// 执行第 4 次
// 执行第 2 次
// 执行第 1 次
// 执行第 0 次
2. for 循环
更灵活的循环方式,适合已知循环次数的场景,语法:
for (初始化; 条件; 更新) {
// 循环体
}
示例:基本用法
// 输出 1-5
for (let i = 1; i <= 5; i++) {
console.log(i); // 依次输出 1、2、3、4、5
}
总结
本文全面讲解了 JavaScript 核心运算符和流程控制:
- 自增运算符的前缀/后缀差异影响返回值
- 比较运算符中
===比==更严格(检查类型) - 逻辑运算符依赖真值/假值转换
- 条件判断:if 适合区间判断,switch 适合等值判断
- 循环:while 适合未知次数,for 适合已知次数,灵活使用
continue和break


