在node环境中运行需要使用babel命令将ES6代码转换为ES5代码再执行相关文件
使用命令直接将src目录下所有ES6代码转换ES5代码到dist目录下:

    $ babel src --out-dir dist

1、export命令    【导出模块中的变量或方法】
export { } | 表达式 | 函数
说明:
 a、export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系,不能直接导出一个值
 b、在一个模块中,export可以调用多次,导出多个值使用对象形式{m,n}
eg:

    //module01.js文件
//直接导出单个变量或单个函数
export let x = 10;
export function say(){
console.log('say');
}; //模块中自定义的变量及方法
let m = 1;
let n = 2;
let test = function(){
console.log('test');
}; //可以使用对象解构导出多个变量或使用表达式声明的方法
export { m,n,test }
//导出变量x在导入模块中使用temp变量接受
export {x as temp}

2、export default命令    【默认导出数据】
export default { } | 函数[一般为匿名函数]
说明:
 a、一个模块中只能存在一个默认导出命令;
 b、默认导出一般不定义名字,在导入的时候随意取名,且导入时不需要使用{}包裹导入数据【如果导入时使用的是全导入则default导入的变量名为default】
    c、默认导出可以导出多个数据使用对象形式,导出单个数据直接使用数据值或变量名【不能使用表达式】
eg:

    //module01.js文件
//默认导出【一个模块中只能存在一个默认导出】(一般不定义名字,在导入的时候随意取名)
export default function(){
console.log('default');
}

3、import命令    【导入其它模块中的变量或方法】
import  { }|变量名|[* as obj]  from "导入数据的模块路径"
注:
    a、在导入某个模块中数据时,该模块引入路径时加载时会执行一遍路径文件代码,而后面引入该文件路径则是从缓存中获取。
    b、单令模式【导入模块只导入一次,后面引入该文件路径则是从缓存中获取】
说明:
 a、使用export命令定义了模块的对外接口以后,其他模块可以通过import命令加载这个模块并获取到相应的导出值
 b、导入其它模块数据时,对象解构只需保持变量名一一对应,与对象中变量的顺序无关
 c、{ }接收导入的数据对象;  变量名则为导出文件中的默认导出数据的变量名称;  * as obj 导入导出文件中所有数据封装到obj对象中
eg:

    //module02.js文件
//导入./module01.js文件导出的m,n,test变量
import { temp,say,m,n,test } from "./module01.js"
//导入单个变量需要使用{}包裹变量
import {say} from "./module01.js"; //对应默认导出的导入 变量名随便取且导入时数据不需要使用{}包裹
import defaultData from "./module01.js" //导入了module01.js文件中的默认导出数据【变量、方法或对象】 //导入module01.js模块中所有的导出数据【其中包括默认导出的数据】
import * as obj from "./module01.js" //obj对象中包含所有的module01.js模块中导出的数据;默认导出数据名为default

4、export 与 import 的复合写法
export { } from "导入数据的模块路径"
eg:

    //导入module01.js模块中的m,n并向外导出
export { m, n } from './module01.js';
// 等同于
import { m, n } from './module01.js';
export { m, n };

ES6 模块(八)的更多相关文章

  1. ES6模块import细节

    写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...

  2. ES6模块的import和export用法总结

    ES6之前以前出现了js模块加载的方案,最主要的是CommonJS和AMD规范.commonjs前者主要应用于服务器,实现同步加载,如nodejs.AMD规范应用于浏览器,如requirejs,为异步 ...

  3. commonjs模块和es6模块的区别

    commonjs模块与es6模块的区别 到目前为止,已经实习了3个月的时间了.最近在面试,在面试题里面有题目涉及到模块循环加载的知识.趁着这个机会,将commonjs模块与es6模块之间一些重要的的区 ...

  4. ES6模块之export和import详解

    ES6中的模块即使一个包含JS代码的文件,在这个模块中所有的变量都是对其他模块不可见的,除非我们导出它.ES6的模块系统大致分为导出(export)和导入(import)两个模块. 1.模块导出(ex ...

  5. Webpack4教程:第一部分,入口、输入和ES6模块

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://wanago.io/2018/07/16/webpack-4-course-par ...

  6. ES6 模块机制

    ES6 实现了模块功能 将文件当作独立的模块,一个文件一个模块 每个模块可以导出自己的API成员,也可以导入其他模块或者模块中特定的API ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模 ...

  7. Es6模块语法笔记

    /** * Created by Administrator on 2017/4/15. */ /*---------------------export命令--------------------- ...

  8. ES6 模块与 CommonJS 模块的差异

    ES6 模块与 CommonJS 模块完全不同.它们有两个重大差异 CommonJS 输出是值的拷贝,即原来模块中的值改变不会影响已经加载的该值,ES6静态分析,动态引用,输出的是值的引用,值改变,引 ...

  9. commonjs模块和es6模块的区别?

    commonjs模块和es6模块最主要的区别:commonjs模块是拷贝,es6模块是引用,但理解这些,先得理解对象复制的问题,在回过头来理解这两模块的区别. 一.基本数据类型的模块 ./a1.js ...

随机推荐

  1. 201777010217-金云馨《面向对象程序设计(java)》第十三周学习

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  2. Computer Network Chapter4 solution

    1.以太网使用曼彻斯特编码,效率50% 2.侦听信道时间:来回延时时间(10usec):发送数据(25.6usec): 3.单向时延t=S(距离)/V(电缆传输速率):最小帧长=2*t*C(数据传输速 ...

  3. 【oracle】update select语句

  4. Day01 确定选题

    一起来选题 一.谁想个选题? 今天是第一节大软课,大家需要进行分组和确定选题.分组固然是快乐的,但是确定选题是让人费脑筋的.要新颖!要有需求!要我们能实现(笑)......大家面面相觑.面对这种情况, ...

  5. 【BZOJ3529】[SDOI2014] 数表(莫比乌斯反演)

    点此看题面 大致题意: 规定一个\(n*m\)数表中每个数为\(\sum_{d|i,d|j}d\),求数表中不大于\(a\)的数之和. 不考虑限制 我们先不考虑限制,来推一波式子. 首先,易知数表中第 ...

  6. [LeetCode] 32. Longest Valid Parentheses 最长有效括号

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  7. JDK8过渡到JDK11

    module-info 首先最大的难度就是module-info.java Java9 手把手教你实现模块化 后续我再找点详细的资料 中文API文档 其次是中文文档[感谢 译者wzjin https: ...

  8. java web开发入门九(Maven使用&idea创建maven项目)基于intellig idea

    Maven 1.解决的问题 jar包的依赖和管理:版本.依赖关系等 自动构建项目 2.maven介绍 1.Maven是什么? Apache Maven是一个软件项目管理的综合工具.基于项目对象模型(P ...

  9. Visual Studio 调试系列3 断点

    系列目录     [已更新最新开发文章,点击查看详细] 断点是开发人员的工具箱中最重要的调试技术之一. 若要暂停调试程序执行所需的位置设置断点. 例如,你可能想要查看代码变量的状态或查看调用堆栈的某些 ...

  10. bcrypt 加密算法

    MD5 的特性 MD5 是一种加密算法,在调用这个算法的时候,提供一个密码的明文, 调用的结果,得到一个 32 位长度的密文: MD5 算法的特性:相同的字符串,如果多次调用 md5 算法,得到的结果 ...