前端/移动开发面试题更新 2026-08-05

请说明在 Node.js 环境下,模块的导入与导出分别有哪些方式,并简述其使用场景。

前端/移动开发技术原理Node.js

考察说明

考查对 Node.js 模块系统基本语法和常见导出导入方式的理解。

回答思路

  1. 【回答框架 1】Node.js 模块系统基于 CommonJS 规范,核心是 module.exports 和 require。导出时,module.exports 指向导出的对象,exports 是 module.exports 的引用,直接给 exports 赋值会切断引用关系。
  2. 【回答框架 2】导入使用 require 函数,它接受模块路径或模块名,返回模块导出的内容。require 是同步的,会缓存已加载的模块,重复 require 同一模块不会重复执行。
  3. 【回答框架 3】ES6 模块(import/export)在 Node.js 中通过 .mjs 扩展名或 package.json 中 type 字段为 module 来启用,支持静态分析和异步加载。
  4. 【回答框架 4】实际开发中,CommonJS 适用于传统 Node.js 项目,ESM 适用于新项目或需要浏览器与 Node 共享代码的场景。
  5. 【关键点 1】CommonJS 使用 module.exports 导出,require 导入。
  6. 【关键点 2】exports 是 module.exports 的引用,不能直接赋值。
  7. 【关键点 3】ESM 使用 export 和 import,需启用模块模式。
  8. 【关键点 4】require 是同步且带缓存的。
  9. 【易错点 1】混淆 exports 和 module.exports 导致导出为空。
  10. 【易错点 2】在 CommonJS 中混用 import 语法导致语法错误。
  11. 【易错点 3】忽略 require 缓存导致模块状态未更新。