module.exports exports export export.default import require之间的关系
Posted chaichai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了module.exports exports export export.default import require之间的关系相关的知识,希望对你有一定的参考价值。
module.exports exports export export.default import require这些是nodejs中模块应用常用的关键词,比较容易混淆,今天从网站收集了一些资料,在此总结一下。
在讲具体情况前,先讲解下CommonJs、ES6和nodejs之间的关联,这样更加利于区分理解标题涉及的内容。
CommonJS
是个规范这个规范中定义了许多API,用于普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的javascript解释器和不同的主机环境中
ES6
可直接理解为javascript的增强版(增加了新的规范、特性与功能)或最新版,两者之间虽然略有差异,但也可以忽略(不要在意这些细节,呵呵),就有点类似于JAVA8与JAVA语言的关系.
Nodejs支持CommonJS和ES6两种规范。
module.exports/exports(导出模块)、require(导入模块)是属于CommonJS模块规范!
export/export default(导出模块)、import(导入模块)是属于ES6语法
说到这里,对于上面这些模块操作关键字应该有了初步的了解。那么问题来了
1.CommonJS模块规范中module.exports和exports有什么区别
exports = module.exports = {};
所以module.exports
和exports
的区别就是var a={}; var b=a;
,a和b的区别
2.ES6中export和export default有什么区别
export其实和export default就是写法上面有点差别,一个是导出一个个单独接口,一个是默认导出一个整体接口
1、export与export default均可用于导出常量、函数、文件、模块等
2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3、在一个文件或模块中,export、import可以有多个,export default仅有一个
4、通过export方式导出,在导入时要加{ },export default则不需要
export用法: 导出文件 testa.js function functionA(){...} var val1 =‘test‘; export {functionA,val1} 导入文件使用: import{functionA,a} from ‘./testa‘ 或者 import{functionA} from ‘./testa‘ export default用法 导出文件testa.js export default function functionA(){} 导入文件: import functionA from ‘./testa‘
以上是初浅的区别解释,在此留个问题后续深入了解:这些关键字内部如何实现的,更深层次的区别在哪 ?
以上内容参考了作者:https://www.cnblogs.com/Nutrient-rich/p/7047877.html
以上是关于module.exports exports export export.default import require之间的关系的主要内容,如果未能解决你的问题,请参考以下文章