第七章|模块、运行环境与测试入口
前面已经理解函数、对象和异步执行。现在把代码分到不同文件,会多出加载、链接、运行环境和测试入口的问题。本章先把语言模块机制讲清,再进入 Node 的实际运行规则,最后比较浏览器加载时序。
本章的阅读顺序
- ES Modules 与实时绑定:公开接口 → 依赖图 → 初始化顺序。
- Node 模块与内置测试:文件类型 → 模块互操作 → 行为断言。
- 脚本加载与兼容:DOM 解析 → 执行时机 → 目标环境。
这些概念怎样联系
模块决定代码如何连接,运行环境决定路径和平台能力怎样解释,测试把预期行为变成可重复检查。不要把“构建工具能处理”误认为语言或浏览器本来就这样工作。先在无额外依赖的小例子里观察机制,再阅读工具生成的代码,会更容易判断问题属于哪一层。
读模块时先预测三件事:哪个文件先执行、导入方读的是连接还是快照、失败发生在加载还是链接或求值。用入口日志与快照实验核对。测试篇再把不可控的时间收束为参数,用恰好到期的输入验证边界;脚本篇把同样的依赖问题放回HTML解析与网络加载中。
阅读后的自查
关闭答案页,把两个依赖全局变量的经典脚本改成显式导入的模块;再为价格函数补一个会失败的边界输入。既要看到结果正确,也要能说明文件在哪里加载、错误在哪里发生。