1.ES6使用export和import来导出、导入模块
2.ES6模块的设计思想是尽量的静态化,是编译是就能确定模块的依赖关系,以及输入和输出的变量
3.node的编程思想是模块化,所以每个文件就是一个模块,每个模块的内部,module变量代表当前模块,是一个对象,他的exports是对外接口,加载某个模块其实就是记在模块的module.exports属性。node用的是CommonJs规范,CommonJS用exports和require来导出、导入文件。import和require都是被模块化所使用的。

在es5中,用module.exports和exports导出模块,用require引入模块。
es6新增export和export default导出模块,import导入模块。

module.exports和exports的区别:

module和exports是node.js给每个js文件内置的2个对象。

例如:console.log('1--', module); console.log('2--', exports)

注意:module.exports和exports一开始都是一个空对象{},实际上,这两个对象指向同一块内存。这也就是说module.exports和exports是等价的(有个前提:不去改变它们指向的内存地址)。

require引入的对象本质上是module.exports。这就产生了一个问题,当 module.exports和exports指向的不是同一块内存时,exports的内容就会失效。


export和 export default的区别:

一、在es6中的两种基本用法
新建两个文件:a.js, b.js。a.js用于导出模块,b.js用户导入模块。两个文件放在同一目录下。

  • 第一种用法
    export default导出:

    export default导出对应的导入:
  • 第二种用法
    export导出:

    export 导出对应的导入:

    二、区别
    可以在a.js中打印出module,通过打印的内容找到2种导出模块的区别。


    注:一般来说,module.exports和exports与require对应。也就是用module.exports和exports导出的模块,则用require导入。(不是绝对,如果代码支持es6,也可以用import引入)。

import和require的区别

遵循的不同:
1.import是ES6的一个语法标准
(若要兼容所有的浏览器必须转化为ES5语法)
2.require遵循AMD规范引入方式

调用时间不同:
1.require是运行时调用,所以理论上可用于代码的任何地方
2.import是编译时调用,必须放在文件的开头
(import有提升效果,会提升到整个模块的头部,首先执行,他是静态执行的,不能使用表达式和变量即在运行时才能拿到结果的语法结构)

本质不同:
1.require是赋值过程,例如:const path=require('path');
2.import是结构过程,在node中用babel支持es6,把es6转化为es5,import语法会被转化成require

require和exports

都遵循CommonJs/AMD,只在运行时确定依赖关系及输入输出的变量,无法进行静态化
用法:
const fs=require(‘fs’);
exports.fs=fs;
module.exports=fs;

import/export

遵循ES6规范,支持编译时静态分析,是module的2个命令。
写法多样:
import fs from 'fs';
import {default as fs } from 'fs';
import * as fs from 'fs';
import {readFile } from 'fs';
import {readFile as read } from "fs";
import fs,{readFile} from 'fs';

export default fs;
export const fs;
export function add(){};
export {readFile,read} from 'fs';
export * from 'fs';

module.exports,exports import require export相关推荐

  1. 【ES6】Module 语法(import 和 export)

    文章目录 一.import export(导入导出) 1.1.基本用法 1.2.扩展用法(`as` 和 `*`) 1.3.注意事项 二.export default(导入导出) 2.1.基本使用 2. ...

  2. require 动态加载_require,exports,module.exports和import,export,export default

    我们前端在开发过程中经常会遇到导入导出功能, 在导入时,有时候是require,有时候是import 在导出时,有时候是exports,module.exports,有时候是export,export ...

  3. 两种模块化语法(module.exports,exports,require export,import)

    目录 模块 导出 导入 ES6Module 模块 导出 导入 CommonJs与ES6Module的区别 对模块依赖的处理区别 导入模块值的区别 循环依赖的区别 结尾 模块 CommonJs规范中规定 ...

  4. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  5. 【nodejs】import、export、exports、module.exports

    1.import 和 export(ES6特性) 目录结构 export_file.js export const myNumbers = [1, 2, 3, 4]; const animals = ...

  6. 彻底搞清楚javascript中的require、import和export

    为什么有模块概念 理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. 但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持"类"( ...

  7. 这几个概念你可能还是没搞清require、import和export

    简单粗暴,富婆给你说,其实我也没太搞明白,最近看了一篇文章我才理清了一点点思路,最近整日沉迷于肥宅快乐水,技术都跟不上了,来篇文章,提神醒脑,朝着我的富婆梦更近一步,早日走上富婆路,包养我家大狼狗!! ...

  8. js模块化:require、import和export

    前言 编写js模块必须要搞懂import和export的关系 Google Chrome 84.0.4147.135 (正式版本) (64 位) (cohort: Stable Installs On ...

  9. 【彻底搞清楚javascript中的require、import和export 】

    彻底搞清楚javascript中的require.import和export - 最骚的就是你 - 博客园

最新文章

  1. java程序设计案例教程 钱银中_《Java程序设计案例教程》【价格 目录 书评 正版】_中国图书网...
  2. mysql查询的题目_mysql查询语句练习题
  3. 【C语言】控制台窗口图形界面编程(一)句柄和文本属性
  4. HTML5 高级系列:web Storage 学前端开发要先看这个
  5. filter过滤后重新添加_Spring Boot 2.X(十):自定义注册 Servlet、Filter、Listener
  6. 万师傅使用云产品,上手简单、开箱即用、省去运维烦恼
  7. 消息中间件学习总结(21)——RocketMQ 消息丢失场景分析及如何解决!
  8. python从入门到实践答案第四章_python从入门到实践课后习题第四章
  9. 百度10.55亿元入股创维酷开,李彦宏要为电视带来AI遥控器
  10. delphi glsence 教程
  11. HDU 5478 Can you find it (卡常数)2015 ACM/ICPC Asia Regional Shanghai Online
  12. ai跟随路径_怎么在ai中创建文本路径?Ai中怎样沿路径创建文本?
  13. python毫秒级sleep
  14. mysql 批量执行sql语句_MySQL中批量执行SQL语句
  15. 网络视频和移动营销 一根绳子上的蚂蚱
  16. 文字太多时给文本框添加滑动条——text + ContentSizeFitter + Scroll View
  17. 分数阶偏微分差分方程MATLAB,分数阶偏微分方程及其数值方法.ppt
  18. 【转摘】在Word中使用SmartArt绘制组织结构图
  19. 打包带走极客时间大数据课程的正确姿势
  20. iFIXIT认为 HTC One M8 是近年最难维修的手机之一

热门文章

  1. 如何从EPROCESS辨别一个进程是否已退出
  2. 深度学习图像处理:双线性CNN (Bilinear cnn)- 细粒度图像分类模型
  3. php面向对象(OOP)—什么是面向对象
  4. Windows phone 应用开发[1]-Text To Speech
  5. HTML学生个人网站作业设计:动漫网站设计——刀剑神域(8页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  6. android uid.system,android.uid.system
  7. 搜狗王小川说输入法的未来是自动问答,那么这个技术究竟发展得怎么样了?...
  8. 视频号上热门后热度能维持多久,视频号热门以后持续多久:国仁楠哥
  9. android 正方形layout,Android 自定义正方形布局
  10. lcd1206液晶驱动详解