第一章|值、表达式与控制流
本章从一份可运行的 .mjs 文件开始,逐步回答三个问题:程序处理什么值,表达式怎样算出结果,条件和循环怎样组织步骤。没有前置 JavaScript 要求;先能运行,再能预测,最后能解释边界。
这一章怎样连起来
text
运行环境 → 语法与声明 → 值和类型
↓
比较与真假 → 条件、循环
↓
转换规则 → 精度与输入校验首次阅读先跟着小例子运行,不需要提前学框架、网页或项目结构。核心示例保存为独立 .mjs,用 Node.js 22 执行;浏览器环境差异会明确写出。
阅读顺序
- 运行第一段程序:知道文件如何执行,区分声明、赋值、表达式和语句,读懂三类常见错误。
- 值与类型:建立原始值、对象身份、空值和真假值的区别,纠正
const自动冻结对象的误解。 - 控制流:用互斥条件与有终点的循环描述规则,处理边界、贯穿和提前退出。
- 运算与转换:把拼接、数值转换、相等比较和短路逐步推导出来。
- Number 与 BigInt:认识安全整数、浮点精度、Math、位运算及大整数边界。
前两篇偶尔出现的对象只含一两个属性,用来说明身份,不要求掌握对象工具箱。对象自定义转换、完整字符串处理与模块连接已经安排到后续章节,不会在这里把它们当作读者已知。
把一个结果拆成三个问题
以“改了数量,总价却没变”为例,先问总价是不是之前保存的一次计算结果,再问后来的语句是否真的重新赋值,最后问算式两边的值是否都是数字。这分别对应执行轨迹、绑定变化和类型转换,不应合并成一个模糊的“JavaScript会自动处理”。
本章的深化例子按照这个顺序提供证据:价格的逐句状态表展示何时计算;独立if与循环不变量展示实际走哪条路;parseInt指数文本、null比较和短路计数展示运算符具体做哪些转换。到数值章节,再解释为什么类型正确也仍需考虑精度与舍入。
读完后能做什么
看到一小段程序,能逐句写出变量当前值及类型;遇到输入字符串,先转换再验证;能解释循环什么时候停止;能说明为何 0.1 + 0.2 和超大 ID 需要不同处理。先独立完成零值保留、环形页码和数量校验的小题,再对照答案;解释允许的输入、运行正常值与边界值,能看见结果为什么符合规则。
先完成各篇文末练习,再看本章答案。接着进入第二章|函数与作用域,把已经会写的规则组织成可调用单元。