6.exports、module.exports、export、export defalut

1.exports、module.exports

首先exports和module.exports是出自于CommonJs规范里面的,熟悉NodeJs的朋友或许知道,废话不多说!
根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对
其 他文件不可见。CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的
exports属 性(即 module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属
性,module.exports导出对应require导入,export导出对应import导入。。

var x = 5;
var addX = (value) => value + x
module.exports.x = x;
module.exports.addX = addX;

上面代码通过module.exports输出变量x和函数addX。

require方法用于加载模块。

var example = require('./example.js');
console.log(example.x);         // 5
console.log(example.addX(1));   // 6

看了刚刚这段commonjs规范上面的介绍可以知道以下区别与联系:
其实exports变量是指向module.exports,加载模块实际是加载该模块的module.exports。这等同在每个模块头
部,有一行这样的命令。

var exports = module.exports;

于是我们可以直接在 exports 对象上添加方法,表示对外输出的接口,如同在module.exports上添加一样。注
意,不能直接将exports变量指向一个值,因为这样等于切断了exports与module.exports的联系。

2.export、export default

export和export default是属于ES6语法
模块功能主要由:export和import构成。export导出模块的对外接口,import命令导入其他模块暴露的接口。
export其实和export default就是写法上面有点差别,一个是导出一个个单独接口,一个是默认导出一个整体接
口。使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。这里就有一个简单写法不用
去知道有哪些具体的暴露接口名,就用export default命令,为模块指定默认输出。

demo.jsexport a = "1";
export b = (a)=> a + b;
export c = {d: '3',e: '4'
}

export导出的变量或对象或方法,则对应的需要用import来导入

import { a, b, c } from './demo.js'
//或者等价
import *as newName from './demo.js' 

针对export变量导出,es6 的规范 import * as obj from "xxx" 会将 "xxx" 中所有 export 导出的内容组合成一个对象返回

export defalut

 demo1.jsexport defalut{a: '2',add(b,c) {return b + c}
}
import 导入
import whatever from './demo1.js'

但一个文件中只能使用一次export defalut

6.exports、module.exports、export、export defalut相关推荐

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

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

  2. 一文解读exports、module.exports 和 export、export default

    对于前端初学者来说,exports.module.exports 和 export.export default 容易让人产生误解,笔者顺便写篇文章解读一下. 第一部分:exports 和 modul ...

  3. Node.js中exports、module.exports、require之间的关系

    Node中的js文件 Node中的每个JS文件都是一个单独的模块,模块中包含的核心变量:exports.module.exports.require nodejs中module文档 // 插入图片 E ...

  4. exports和module.exports的区别

    请牢记一条原则:无论使用 exports 暴露成员,或是 module.exports 暴露成员,最终暴露的结果,都是以 module.exports 所指向的对象为准. 1.module 对象 看一 ...

  5. node.js中exports与module.exports的区别分析

    前言 关于Node.js中的exports和module.exports,很多时候都比较容易让人混淆,弄不清楚两者间的区别.那么我们就从头开始理清这两者之间的关系. 来源 在开发Node.js应用的时 ...

  6. nodeJS学习(9)--- nodeJS模块:exports vs module.exports

    模块简介: 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ 这些核心模块被编译成二进制文件,可以 require('模块名') ...

  7. nodejs中的exports和module.exports

    module是随文件而生的全局变量,它有exports属性,这个属性默认是一个空的字典. node的设计者画蛇添足有定义了一个exports全局变量,export指向module.exports所指向 ...

  8. Node.js学习之(第二章:exports和module.exports)

    前言 Node中,每个模块都有一个exports接口对象,我们需要把公共的方法或者字符串挂载在这个接口对象中,其他的模块才可以使用. Node.js中只有模块作用域,默认两个模块之间的变量,方法互不冲 ...

  9. exports 和 module.exports (自用,小技巧)

    参考示例 Vue 以插件方式注册全局组件 知识点: 1.  exports 是 module.exports 的简写 2. 使用 Object.assign 合并对象,可合并多个 方式一 module ...

  10. Node.js: exports 和 module.exports 的区别

    我理解的exports 和 module.exports 的区别,欢迎大家吐槽~ 为了更好的理解 exports 和 module.exports 的关系,我们先来补点 js 基础.示例: app.j ...

最新文章

  1. 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠
  2. 获取指定文件夹下的所有文件名
  3. Datawhale-零基础入门NLP-新闻文本分类Task02
  4. html渐变编织背景,【报Bug】uniapp设置了css渐变背景色编译时会报错
  5. 富人和穷人的八大差异
  6. 【Python】字符串的格式化
  7. (13)Vue.js 自定义指令
  8. tp5 mysql定时任务_tp5+mysql实现消息队列,并在mac系统下定时执行-Go语言中文社区...
  9. 「2019冬令营提高组」不同的缩写
  10. 面试:Synchronized知识点
  11. ERP实施过程中的沟通管理研究
  12. mysql里查询中文条件_Mysql对中文查询条件出现的问题
  13. Mac下安装java运行环境
  14. 小米手机无需刷入Recovery获取Root权限,卡刷包payload.bin提取boot.img文件
  15. 2-常见机器学习模型总结
  16. 2022-2028全球与中国三维扫描仪市场现状及未来发展趋势
  17. Zigbee无线模块配置
  18. 网站html超链接移动,HTML - 超链接
  19. python软著申请_软著申请注意事项放心选择
  20. fleck 客户端_Fleck - 又一个灵感之源 #iPhone

热门文章

  1. 评说SAP Business ByDesign
  2. 有关DataForm组件的研究_显示多重数据模型集合——Silverlight学习笔记[24]
  3. 任务管理平台_“平房区教师培训学分管理平台启用暨任务部署培训会议”
  4. 漫画:什么是B+树?
  5. 网络QoS原理与实现
  6. android ion --system heap(个人理解,不确定完全对)
  7. Python爬虫入门学习--中国大学排名
  8. 局域网打印机怎么连接_怎么连接同事已共享的打印机?
  9. 3801.最佳连续子数组-AcWing题库
  10. 二叉树反转java实现