返回
ES6模块化之export与CommonJS模块化之module.exports对比详解
前端
2023-12-18 10:28:26
ES6模块化中的export
在ES6中,使用export来导出模块。export可以导出变量、函数、类等。被导出的变量、函数、类等在其他模块中可以通过import关键字来导入。
CommonJS模块化中的module.exports
在CommonJS中,使用module.exports对象来导出模块。module.exports对象可以导出变量、函数、类等。被导出的变量、函数、类等在其他模块中可以通过require()函数来导入。
export和module.exports的区别
export和module.exports是两种不同的模块导出方式。export是ES6中引入的模块导出方式,而module.exports是CommonJS中引入的模块导出方式。
export和module.exports之间最主要的区别是,export只能导出变量、函数、类等,而module.exports可以导出任何类型的数据,包括对象、数组等。
代码示例
ES6模块化示例
// 定义一个名为“math.js”的模块
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
// 在另一个模块中导入“math.js”模块
import { add, subtract } from "./math.js";
// 使用导入的变量和函数
const result = add(1, 2);
console.log(result); // 输出: 3
CommonJS模块化示例
// 定义一个名为“math.js”的模块
const math = {
add: (a, b) => a + b,
subtract: (a, b) => a - b,
};
// 将“math”模块导出
module.exports = math;
// 在另一个模块中导入“math.js”模块
const math = require("./math.js");
// 使用导入的变量和函数
const result = math.add(1, 2);
console.log(result); // 输出: 3
总结
export和module.exports都是模块导出方式,但它们之间存在一些差异。export只能导出变量、函数、类等,而module.exports可以导出任何类型的数据。此外,export是ES6中引入的模块导出方式,而module.exports是CommonJS中引入的模块导出方式。
在实际开发中,可以使用ES6模块化或CommonJS模块化来实现模块的导入和导出。ES6模块化是更现代的模块化方式,但它只支持在现代浏览器和Node.js中使用。CommonJS模块化是更传统的模块化方式,但它支持在各种环境中使用。