1.5 运算符

运算符就是用来做运算的符号,就像数学课上的 +-*/

JavaScript 中常见的运算符分为:算术运算符赋值运算符比较运算符逻辑运算符

1.5.1 算术运算符

算术运算符用于执行数学运算:

算术运算符表:
运算符 含义 示例 结果
+ 加法 10 + 3 13
- 减法 10 - 3 7
* 乘法 10 * 3 30
/ 除法 10 / 3 3.333...
% 取余(求模) 10 % 3 1(10÷3余1)
交互演示 —— 算术计算器:
等待计算...
1let a = 10; 2let b = 3; 3 4console.log(a + b); // 13 5console.log(a - b); // 7 6console.log(a * b); // 30 7console.log(a / b); // 3.3333333333333335 8console.log(a % b); // 1(10 ÷ 3 = 3 余 1) 9 10// 取余的实际用途:判断奇偶数 11let num = 7; 12console.log(num % 2); // 1(奇数),如果结果是0就是偶数

1.5.2 赋值运算符

赋值运算符用于给变量赋值:

赋值运算符表:
运算符 示例 等价于 结果
= x = 5 把5赋给x x = 5
+= x += 3 x = x + 3 x = 8
-= x -= 3 x = x - 3 x = 2
*= x *= 3 x = x * 3 x = 15
/= x /= 3 x = x / 3 x = 1.666...
提示:

自增自减++-- 是加1和减1的简写。

let n = 5; n++; // n = n + 1 → 6 n--; // n = n - 1 → 5
1let score = 10; 2score += 5; // score = score + 5 → 15 3score -= 3; // score = score - 3 → 12 4score *= 2; // score = score * 2 → 24 5score /= 4; // score = score / 4 → 6 6console.log(score); // 6

1.5.3 比较运算符

比较运算符的结果是布尔值truefalse)。

⚠️ 永远用 === 代替 ==== 会做类型转换,'5' == 5true,容易埋坑。

比较运算符表:
运算符 含义 示例 结果
> 大于 5 > 3 true
< 小于 5 < 3 false
>= 大于等于 5 >= 5 true
<= 小于等于 5 <= 4 false
== 相等(只比较值) '5' == 5 true
=== 全等(比较值和类型) '5' === 5 false
!= 不相等 '5' != 5 false
!== 不全等 '5' !== 5 true
交互演示 —— 比较运算:
等待比较...
1let age = 18; 2 3console.log(age > 18); // false(不大于) 4console.log(age >= 18); // true(等于) 5console.log(age < 20); // true 6console.log(age == '18'); // true(==只比较值,'18'转成18) 7console.log(age === '18'); // false(===比较值和类型,数字18≠字符串'18') 8console.log(age !== '18'); // true(确实不全等)

1.5.4 逻辑运算符

逻辑运算符用来组合多个条件

逻辑运算符表:
运算符 名称 大白话 示例 结果
&& 与(且) 两个条件都成立才真 true && false false
|| 有一个成立就真 true || false true
! 非(取反) 真变假,假变真 !true false
短路特性:

&& 短路:左边是 false,右边就不执行了

|| 短路:左边是 true,右边就不执行了

// && 短路:左边是 false,右边就不执行了 let a = 0 && console.log('不会执行'); // || 短路:左边是 true,右边就不执行了 let b = 1 || console.log('不会执行');

💡 记忆口诀&& 找假——找到假就停;|| 找真——找到真就停。

运算符优先级(从高到低):
let result = 5 + 3 * 2 > 10 && true; // 1. 3 * 2 = 6 // 2. 5 + 6 = 11 // 3. 11 > 10 = true // 4. true && true = true console.log(result); // true

💡 记不住优先级没关系,多用小括号 (),括号里的先算,清晰又安全。

1let age = 20; 2let hasID = true; 3 4// &&:两个都满足才能进 5console.log(age >= 18 && hasID); // true 6 7// ||:满足一个就行 8console.log(age >= 18 || hasID); // true 9 10// !:取反 11console.log(!hasID); // false 12 13// 实际应用:判断是否可购买酒类 14let isAdult = age >= 18; // true 15let notDrunk = true; // 没喝醉 16console.log(isAdult && notDrunk); // true

1.6 分支语句

程序不是总从上到下跑,有时候要根据条件选择走哪条路。分支语句就是"十字路口"。

1.6.1 if 语句 —— 基本语法:
if (条件) { // 条件为 true 时执行的代码 } if (条件) { // 条件为 true 时执行 } else { // 条件为 false 时执行 } if (条件1) { // 条件1为 true 时执行 } else if (条件2) { // 条件1不成立且条件2成立时执行 } else { // 以上都不成立时执行 }
1.6.2 switch 语句 —— 基本语法:
switch (变量) { case 值1: // 代码 break; case 值2: // 代码 break; default: // 都不匹配时执行的代码 }

⚠️ 新手易错case 后面必须加 break,否则会继续往下执行后面的 case("穿透")。

交互演示 —— if/switch 成绩等级计算器:
等待输入分数...
1// if-else-if 成绩判断 2let score = 85; 3 4if (score >= 90) { 5 console.log('优秀'); 6} else if (score >= 80) { 7 console.log('良好'); 8} else if (score >= 60) { 9 console.log('及格'); 10} else { 11 console.log('不及格'); 12} 13// 输出:良好 14 15// switch 星期判断 16let weekday = 3; 17let dayName; 18 19switch (weekday) { 20 case 1: dayName = '星期一'; break; 21 case 2: dayName = '星期二'; break; 22 case 3: dayName = '星期三'; break; 23 case 4: dayName = '星期四'; break; 24 case 5: dayName = '星期五'; break; 25 default: dayName = '周末'; 26} 27console.log('今天是' + dayName); // 今天是星期三

1.7 循环语句

循环就是让一段代码反复执行,直到某个条件不满足为止。好比"没吃完就继续吃,吃饱了就停"。

三种循环语法对比:
循环 语法 特点 使用场景
for for (初始化; 条件; 步进) { ... } 初始化、条件、步进写在一起 知道循环次数时首选
while while (条件) { ... } 只有条件 不知道具体次数,只知道什么时候停
do-while do { ... } while (条件); 至少执行一次 至少需要执行一次的场景
for 循环 —— 代码逐行讲解:
部分 代码 说明
初始化 let i = 1 先执行一次,声明循环变量 i 从 1 开始
条件 i <= 5 每次循环前检查,true 就继续,false 就停
步进 i++ 每次循环后执行,i 加 1
循环体 console.log(...) 条件成立时执行的内容

执行过程:i=1 → 检查 1<=5 ✅ → 输出 → i=2 → …… → i=6 → 检查 6<=5 ❌ → 结束。

while 循环提示:

⚠️ 新手易错while 循环里一定要有改变条件的语句(比如 i++),否则条件永远成立,变成死循环,浏览器会卡死!

do-while 循环特点:

do-whilewhile 的区别是:不管条件成不成立,先执行一次再说

let i = 10; do { console.log('当前数字:' + i); i++; } while (i <= 5); // 输出:当前数字:10 // 虽然 10 > 5 条件不成立,但还是执行了一次
break 和 continue:
// break:跳出整个循环 for (let i = 1; i <= 10; i++) { if (i === 5) { break; // i 等于 5 时跳出,循环结束 } console.log(i); // 输出:1 2 3 4 } // continue:跳过本次循环,继续下一次 for (let i = 1; i <= 5; i++) { if (i === 3) { continue; // i 等于 3 时跳过,不输出 } console.log(i); // 输出:1 2 4 5 }

💡 break = 直接跑路(整个循环结束);continue = 跳过这次(继续下一次)。

交互演示 —— 循环输出展示:
点击按钮查看循环输出...
1// for 循环:从1数到5 2for (let i = 1; i <= 5; i++) { 3 console.log('第' + i + '次循环'); 4} 5 6// while 循环 7let i = 1; 8while (i <= 5) { 9 console.log('当前数字:' + i); 10 i++; 11} 12 13// do-while 循环 14let j = 10; 15do { 16 console.log('当前数字:' + j); 17 j++; 18} while (j <= 5); 19 20// break:跳出整个循环 21for (let i = 1; i <= 10; i++) { 22 if (i === 5) break; 23 console.log(i); // 1 2 3 4 24} 25 26// continue:跳过本次循环 27for (let i = 1; i <= 5; i++) { 28 if (i === 3) continue; 29 console.log(i); // 1 2 4 5 30}