require/exports、import/export 的区别

require/exports先出现。 它是在js社区的开发者自己草拟的规范中产生的,得到大家认可或广泛应用

import/export是ES6的。

CommonJS 作为 Node.js 的规范,一直沿用至今。由于 npm 上 CommonJS 的类库众多,以及 CommonJS 和 ES6 之间的差异,Node.js 无法直接兼容 ES6。所以现阶段 require/exports 任然是必要且实必须的

1.require的调用时间为运行时调用,所以require可以出现在文件的任何地方。动态加载
2.import是编译时调用,所以必须放在文件头部。静态加载

require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

require/exports 是必要且必须的。因为事实是,目前你编写的 import/export 最终都是编译为 require/exports 来执行的

export default导出的东西只能用import导入。
而module.exports和exports的东西可以以任何一种方式导入。`
a.js
var sex="boy";
var echo=function(value){
  console.log(value)
}
export {sex,echo}
b.js
import {sex,echo} from "./ex.js" 
console.log(sex)  
echo(sex)
html文件(type="module")
    <script type="module" src="b.js"></script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【转】 遵循的模块化规范不一样 模块化规范:即为 JavaScript 提供一种模块编写、模块依赖和模块运行的方案...
    houruyaogeili阅读 8,553评论 0 2
  • 前言 java有类文件,Python有import机制,Ruby有require等,而Javascript 通过 ...
    RayLeo阅读 4,191评论 0 4
  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    MapleLeafFall阅读 4,895评论 0 0
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 13,857评论 0 21
  • ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们...
    涅槃快乐是金阅读 5,670评论 0 1

友情链接更多精彩内容