跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端java

JavaScript 运算符与流程控制详解

JavaScript 运算符涵盖自增、比较与逻辑运算,重点区分 == 与 === 的类型转换行为。流程控制包含条件判断(if、switch)与循环(while、for),理解真值假值规则及 break/continue 用法有助于编写健壮的逻辑代码。

锁机制发布于 2026/4/9更新于 2026/9/1052 浏览
JavaScript 运算符与流程控制详解

JavaScript 运算符与流程控制详解

在 JavaScript 开发中,运算符和流程控制是构建业务逻辑的基石。本文将深入讲解比较运算符、逻辑运算、条件判断及循环语句,重点剖析容易踩坑的细节,帮助你写出更健壮的代码。

运算符:自增、比较与逻辑

1. 自增运算符(++)

自增分为前缀(++i)和后缀(i++),核心区别在于返回值时机不同:

  • 后缀自增(i++):先返回当前值,变量再自增。
  • 前缀自增(++i):变量先自增,再返回新值。
let i = 1;
console.log(i+++++i + i); // 结果为 7
/*
 * 解析过程:
 * 1. i++ 先返回 1,此时 i 变为 2
 * 2. ++i 先将 i 自增为 3,返回 3
 * 3. 最后的 + i 取当前 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 < 9true
``逻辑或(至少一边真则真)
!逻辑非(取反)!(2 > 5)true

真值/假值规则:

  • 假值:0、""、null、undefined、NaN。
  • 真值:除假值外的所有值(如非空字符串、非 0 数字)。
console.log(!9);      // false(9 是真值)
console.log(!"");    // true(空字符串是假值)

条件判断语句

1. if 语句

根据条件执行代码块,条件会隐式转换为布尔值:

// 语法
if (条件) {
  // 条件为真时执行
} else {
  // 条件为假时执行
}

// 示例:判断空格字符串是否为真
if (" ") {
  console.log(true); // 输出:true(空格是非空字符串,为真值)
} else {
  console.log(false);
}

2. 三目运算符

if-else 的简写形式,适合简单的赋值或返回场景:

// 判断 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--) {
  if (n === 3) continue; // 跳过 n=3 的循环
  document.write(`执行第${n}次<br/>`);
}
// 输出:
// 执行第 4 次
// 执行第 2 次
// 执行第 1 次
// 执行第 0 次

2. for 循环

更灵活的循环方式,适合已知循环次数的场景:

for (初始化;条件;更新) {
  // 循环体
}

// 示例:基本用法
for (let i = 1; i <= 5; i++) {
  console.log(i); // 依次输出 1、2、3、4、5
}

总结

本文梳理了 JavaScript 的核心运算符和流程控制机制:

  • 自增运算符的前缀/后缀差异直接影响返回值。
  • 比较运算符中 === 比 == 更严格,建议优先使用。
  • 逻辑运算依赖真值/假值转换,需注意边界情况。
  • 条件判断:if 适合区间判断,switch 适合等值判断。
  • 循环控制:while 适合未知次数,for 适合已知次数,灵活运用 break 和 continue 优化逻辑。

目录

  1. JavaScript 运算符与流程控制详解
  2. 运算符:自增、比较与逻辑
  3. 1. 自增运算符(++)
  4. 2. 比较运算符
  5. 3. 逻辑运算符
  6. 条件判断语句
  7. 1. if 语句
  8. 2. 三目运算符
  9. 3. switch 语句
  10. 循环语句
  11. 1. while 循环
  12. 2. for 循环
  13. 总结

更多推荐文章

查看全部
  • Logitech 设备连接问题快速解决指南
  • UG NX 逆向工程:STL 导入与曲面重构流程
  • QUEST 一体机 SideQuest 安装 APK 与 OBB 数据包教程
  • 2026 GitHub 热门 Python 项目:AI 代理与数据工具精选
  • 初学者如何系统入门大语言模型(LLM):从原理到应用
  • Matomo 埋点实战:运营分析与数据结构设计
  • OpenClaw:基于 Node.js 的 AI Agent 操作系统架构解析
  • KSP 核心组件解析:SymbolProcessor、Resolver 和 CodeGenerator
  • OpenAI SDK 集成亮数据网页解锁器实现自动化爬虫
  • RexUniNLU 零样本 NLU 教程:WebUI 上传文件及批量 NER 可视化
  • Rust 异步编程高级模式:并发控制、超时机制与实战架构
  • C++ 面向对象核心:多态详解
  • 基于 LoRA 微调多模态大模型 BLIP-2 实战
  • 基于魔珐星云 SDK 搭建 AI 面试官:3D 数字人开发实战
  • PDFPatcher 开源 PDF 处理工具五大技术突破解析
  • 无线联邦学习:隐私保护下的 AI 协同进化
  • C++ 多线程同步:互斥锁(mutex)实战
  • 前端跨域问题的常见调试与解决方式
  • Node.js 最新安装教程及环境变量配置
  • Python 常见面试题与参考答案详解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online