ES6 Module把一个文件当作一个模块,每个模块有自己的独立作用域,那如何把每个模块联系起来呢?核心点就是模块的导入(import)与导出(export)。

模块化的好处:

  • 防止命名冲突
  • 代码复用
  • 高维护性

暴露也就是导出(export)有三种方式:1.分别暴露 2.统一暴露 3.默认暴露

分别暴露:在需要暴露的变量或者方法前面加上export关键字,我们新建一个m1.js文件写上如下代码

 1 //分别暴露
2 export let team='RNG'
3
4 export function play(){
5 console.log('this is a team of LPL')
6 }
7
8 function own(){
9 console.log('不想被暴露');
10 }

这个时候再在页面上对这个文件进行引入,同样新建一个页面 main.html,通过import关键字进行引入

1     <script type="module">
2 // 引入模块化js
3 import * as m1 from './modulesJs/m1.js'
4 // 调用暴露的方法
5 m1.play(); // thi is a team of LPL
6 // m1.own() // 由于未暴露own方法这个地方就会报错 m1.own is not a function
7 console.log(m1)
8 </script>

同理书写统一暴露m2.js代码如下:

 1 // 统一暴露
2 let name = 'IG'
3 function discription() {
4 console.log('we are the champion');
5 }
6
7 //以对象的形式进行暴露
8 export {
9 name,
10 // 并且可以通过as取一个别名
11 discription as dis
12 }

引入m2.js的方法不变

1     <script type='module'>
2 import * as m2 from './modulesJs/m2.js'
3 m2.dis() // we are the champion
4 console.log(m2.name) // IG
5 </script>

最后默认暴露(暴露一个default对象)

1 // 默认暴露
2 export default {
3 name: 'EDG',
4 say() {
5 console.log('it is a good team');
6 }
7 }
1     <script type='module'>
2 import * as m3 from './modulesJs/m3.js'
3 // 默认暴露的模块JS在调用的时候多了一个default节点
4 m3.default.say() // it is a good team
5 console.log(m3.default.name) // EDG
6 </script>

ES6的模块化(export导出)的更多相关文章

  1. ES6之模块化导入导出

    1.概述 在js的历史上一直没有模块(module)体系,无法将一个大程序拆分成相互依赖的小文件,再用简单的方法拼装起来,这对开发大型的.复杂的项目形成了巨大障碍. 在 ES6 之前,社区制定了一些模 ...

  2. [译]使用6to5,让今天就来写ES6的模块化开发!

    http://es6rocks.com/2014/10/es6-modules-today-with-6to5/?utm_source=javascriptweekly&utm_medium= ...

  3. 使用6to5,让今天就来写ES6的模块化开发!

    http://es6rocks.com/2014/10/es6-modules-today-with-6to5/?utm_source=javascriptweekly&utm_medium= ...

  4. ES6的模块化

    在之前的 javascript 中一直是没有模块系统的,前辈们为了解决这些问题,提出了各种规范, 最主要的有CommonJS和AMD两种.前者用于服务器,后者用于浏览器.而 ES6 中提供了简单的模块 ...

  5. es6的模块化编程

    es6的模块化编程 基本用法 es6 中新增了两个命令 export 和 import , export 命令用于规定模块的对外接口,import 命令用于输入其他模块提供的功能. 一个模块就是一个独 ...

  6. 深入浅出ES6教程模块化

    大家好,本人名叫苏日俪格,大家叫我 (格格) 就好,在上一章节中我们学到了Promise的用法,下面我们一起来继续学习模块化: JavaScript本身是不支持模块化的,只不过后来一些社区的大佬制定了 ...

  7. 探讨ES6的import export default 和CommonJS的require module.exports

    今天来扒一扒在node和ES6中的module,主要是为了区分node和ES6中的不同意义,避免概念上的混淆,同时也分享一下,自己在这个坑里获得的心得. 在ES6之前 模块的概念是在ES6发布之前就出 ...

  8. ES6(Module模块化)

    模块化 ES6的模块化的基本规则或特点: 1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取. 一个模块就是一个单例,或者说就是一个对象: 2:每一个 ...

  9. ES6之模块化

    本文介绍ES6实现模块化的方法:使用import和export. 导入的时候需不需要加大括号的判断:1.当用export default people导出时,就用 import people 导入(不 ...

  10. 面试 11-01.ES6:模块化的使用和编译环境

    11-01.ES6:模块化的使用和编译环境 #前言 #ES6的主要内容 模块化的使用和编译环境 Class与JS构造函数的区别 Promise的用法 ES6其他常用功能 本文来讲"模块化的使 ...

随机推荐

  1. T137223 节能主义

    设平均数为$x$,那么有差值数组$b_i=a_i-x$. 考虑用类似于均分纸牌的方法来解决本题,从左到右依次考虑每堆书,直接乘上预处理好的组合数,然后清零$b_i$. 在实际操作中,将冗余的操作忽略, ...

  2. Flink常见问题解决记录

    1.Hardlink from files of previous local stored state might cross devices 开启了state.backend.local-reco ...

  3. Chart控件-常用设置

    visual studio中原生控件chart控件使用时的一些常用设置 鼠标缩放功能 缩放后恢复曲线

  4. java中取整数绝对值_Java之——位运算求整数绝对值通过下面的位运算可以得到一个整数的绝对值

    public int abs( int a ) {return (a + (a >> 31)) ^ (a >> 31) ;//前半部分-1或+0,后半部分取反 } a为正数的情 ...

  5. git(后悔药)版本回退

    版本回退 查看提交记录 git log remotes/origin/test --pretty=oneline (建议获取远程日志记录,防止本地没有更新到最新版本) 如果本地是最新版本可以使用:gi ...

  6. centos7.6 dokcer-compose在线和离线安装

    在线安装可参考官网文档:https://docs.docker.com/compose/install/#install-compose curl -SL https://github.com/doc ...

  7. Ubuntu22 vim配置

    插件管理器 vim-plug # 下载插件管理器 sh -c 'curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githu ...

  8. 【TensorFlow】Tensorflow-GPU 环境搭建教程(附 Windows 版本对应表及 CUDA GPU 计算能力表)

    conda教程(推荐):『Tensorflow GPU Installation Made Easy: Use conda instead of pip [Update-2] | by Harveen ...

  9. Jmeter接口测试+Jmeter性能测试项目实战+Jmeter性能监控分析调优01

    Jmeter P1 性能测试关键指标 1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开 ...

  10. mysql 创建账号并授权

    1.mysql查看所有账号信息 mysql> select user,host from mysql.user; 2.创建账号 mysql> creat user 'glasssix' I ...