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. RabbitMQ简介及其安装
  2. EntityFramework 6.x和EntityFramework Core必须需要MultipleActiveResultSets?
  3. python必刷面试_Python面试必刷题系列(5)
  4. 岗位推荐 | 百度招聘计算机视觉、深度学习算法工程师(可实习)
  5. 如何创建生成非 MFC 项目的自定义 AppWizards
  6. vue.js能美化界面吗_vue将单页面改造成多页面应用的方法
  7. 织梦自定义图片字段和缩略图一样_织梦图片集模型自定义图片字段调用
  8. 自动化企业人才如何定位?
  9. J2EE是技术还是平台还是框架? 什么是J2EE
  10. 《机关单位办公自动化应用指南 (基于国产信息技术应用创新终端)》
  11. 干细胞体外培养最新技术进展(2021年9月)
  12. 【转】教你如何用手机连接电脑上网
  13. 那些著名的黑客事件 五
  14. linux外接无线网卡,外接无线网卡+linux配置指南
  15. 信号处理:希尔伯特-黄变换
  16. HRBU_20211112训练
  17. 中国国内如何使用chatgpt?
  18. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)
  19. python中clear和clear()
  20. Windows 最新版sourcetree免登录方法

热门文章

  1. WIN10自动重启,关闭自动更新
  2. 参考轨迹获取 二、 Google Earth 显示轨迹新息
  3. highchart实现,有间隔3D环形图
  4. Serverlet的生命周期
  5. 项目总结 美丽说 2016.12.5
  6. 线性模型优化:岭回归和Lasso回归
  7. Hadoop集群搭建超详细说明
  8. 结队编程1-四则运算(95、97)
  9. java四则混合运算_Java实现四则混合运算代码示例
  10. python 实现四则混合运算计算器