Skip to content

运算符与语句 ​

定义 ​

运算符对值进行运算并产生结果;语句是执行某一操作的完整指令(如条件分支、循环)。掌握运算符优先级与严格相等,是写出可预测 JS 代码的基础。

概念要点 ​

  • 算术运算符:+ - * / % **(幂);+ 遇字符串会拼接。
  • 比较运算符:> < >= <=;相等用 === / !==(推荐),避免 == / !=。
  • 逻辑运算符:&&(与)、||(或)、!(非);常用于条件短路。
  • 赋值运算符:=、+=、-=、*= 等复合赋值。
  • 三元运算符:条件 ? 值A : 值B,适合简单二选一。
  • 控制流:if/else、switch 做分支;while/do...while 做循环(for 详见 循环与数组)。

运算符清单 ​

算术 ​

运算符含义示例
+加 / 拼接1 + 2 → 3;'a' + 'b' → 'ab'
- * / %减乘除取余7 % 3 → 1
**幂2 ** 3 → 8
++ --自增自减i++ 后置;++i 前置

比较与逻辑 ​

运算符含义推荐
===严格相等(类型+值)✅
!==严格不等✅
==宽松相等(隐式转换)❌ 避免
!=宽松不等❌ 避免
&&逻辑与短路
||逻辑或短路
!逻辑非

== vs === 典型差异 ​

表达式=====
0 == falsetruefalse
'' == falsetruefalse
null == undefinedtruefalse
'5' == 5truefalse

语句清单 ​

语句用途备注
if / else if / else条件分支最常用
switch多分支匹配配合 break 防穿透
while先判断后执行条件为 false 可能零次
do...while先执行后判断至少执行一次
for计数循环详见 循环与数组
break跳出循环或 switch
continue跳过本次循环迭代

示例 ​

if / else 与三元 ​

javascript
const score = 85;
let grade;

if (score >= 90) {
  grade = "A";
} else if (score >= 60) {
  grade = "B";
} else {
  grade = "C";
}

const status = score >= 60 ? "及格" : "不及格"; // 三元:简单二选一

switch 多分支 ​

javascript
const day = 3;
let label;

switch (day) {
  case 1:
    label = "周一";
    break; // 必须 break,否则穿透到下一 case
  case 2:
    label = "周二";
    break;
  default:
    label = "其他";
}

while 与严格相等 ​

javascript
let i = 0;
while (i < 3) {
  console.log(i); // 0, 1, 2
  i++;
}

// 始终用 === 比较
const value = "0";
if (value === 0) {
  // false — 类型不同
  console.log("不会执行");
}

易错点与交叉引用 ​

问题说明
用 == 比较隐式类型转换产生意外结果 → 始终用 ===
switch 忘记 break会「穿透」执行后续 case
'5' + 1 vs '5' - 1加号拼接、减号转数字 → 见 变量与类型
逻辑与短路a && b 若 a 为假值直接返回 a,不执行 b
浮点精度0.1 + 0.2 !== 0.3 → 金额计算用整数分或专用库
循环细节for、for...of 见 循环与数组

相关章节:变量与类型 · 循环与数组 · 函数与作用域 · 运算符优先级

MDN 参考 ​