exports,module exports和export,export deafult区分
1.使用范围
require
: node 和 es6 都支持的引入
export / import
: 只有es6 支持的导出引入
module.exports / exports
: 只有 node 支持的导出
2.node模块CommonJs规范:
CommonJS
定义的模块分为: 模块标识(module
)、模块定义(exports
) 、模块引用(require
)
先解释 exports 和 module.exports:
在一个node执行一个文件时,会给这个文件内生成一个 exports和module对象,
而module又有一个exports属性。他们之间的关系如下图,都指向一块{}内存区域。
exports = module.exports = {};复制代码
3.export和export deafult
区别:
- export与export default均可用于导出常量、函数、文件、模块等
- 在一个文件或模块中,export、import可以有多个,export default仅有一个
- 通过export方式导出,在导入时要加{ },export default则不需要
- export能直接导出变量表达式,export default不行。