ES2015 Module(模块)
模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出变量。
export命令
模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
// profile.js
export var firstName = 'Michael';
export var lastName = 'Jackson';
export var year = 1958;
上面代码是profile.js文件,保存了用户信息。ES6将其视为一个模块,里面用export命令对外部输出了三个变量。
export的写法,除了像上面这样,还有另外一种。
// profile.js
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;export {firstName, lastName, year};
优先考虑使用这种写法。因为这样就可以在脚本尾部,一眼看清楚输出了哪些变量。
import命令
使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。
// main.js
import {firstName, lastName, year} from './profile';function setName(element) {element.textContent = firstName + ' ' + lastName;
}
上面代码的import命令,就用于加载profile.js文件,并从中输入变量。import命令接受一个对象(用大括号表示),里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js)对外接口的名称相同。
模块的整体加载
除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。
// circle.jsexport function area(radius) {return Math.PI * radius * radius;
}
export function circumference(radius) {return 2 * Math.PI * radius;
}
整体加载
import * as circle from './circle';console.log('圆面积:' + circle.area(4));
console.log('圆周长:' + circle.circumference(14));
export-default命令
从前面的例子可以看出,使用import
命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。
// export-default.js
export default function () {console.log('foo');
}
- 使用export default时,对应的import语句不需要使用大括号;不使用export default时,对应的import语句需要使用大括号。
- export default命令用于指定模块的默认输出。
ES2015 Module(模块)相关推荐
- 【ES6】Module模块详解
[ES6]Module模块详解 一.Module的由来 二.严格模式 三.export命令 四.import命令 查看更多ES6教学文章: 参考文献 引言:由于两个JS文件之间相互使用必须通过一个ht ...
- 【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )
文章目录 一.settings.gradle 配置 1.基本作用 2.include 函数用法 3.Module 目录层级配置 4.修改 Module 模块的 build.gradle 默认构建脚本名 ...
- Ruby的module(模块)
定义模块用module...end .模块与类非常相似,但是: 模块不可以有实例对象: 模块不可以有子类. #Module(模块) module Module1 def sqrt(num, rx= ...
- 简单实例讲解linux的module模块编译步骤
简单实例讲解linux的module模块编译步骤 (2014-10-24 10:19:17) 标签: module linux 分类:Linux/Unix 本文将直接了当的带你进入linux的模块编译 ...
- html模块殃射,【Web前端问题】webpack打包后,module模块中的函数无法在html标签的事件中调用?...
折腾了好久,求大佬指点~~最近才开始接触webpack以及ES6的module,可能理解的有问题吧...希望大佬来指点一下我这个菜鸟. 我的想法是在一个module中定义函数,在HTML的中用oncl ...
- 指定module_一个缺失已久的特性 — module模块
在ES6之前,Javascript还不支持原生的模块化.如果要实现模块化,我们要借助一些框架,比如:requireJS或者seaJS等:什么?没用过也没听过这些框架?没关系,它们不是我们今天要讲的重点 ...
- 第二十节:一个缺失已久的特性 — module模块
在ES6之前,Javascript还不支持原生的模块化.如果要实现模块化,我们要借助一些框架,比如:requireJS或者seaJS等:什么?没用过也没听过这些框架?没关系,它们不是我们今天要讲的重点 ...
- Android 驱动(8)---简单实例讲解linux的module模块编译步骤
简单实例讲解linux的module模块编译步骤 原博文地址http://blog.sina.com.cn/s/blog_4ba5b45e0102v25h.html ----------------- ...
- 5.Module模块
(1).模块化的初衷 现在的web系统越来越庞大.复杂,需要团队分工,多人协作,大型系统的javascript文件经常存在复杂的依赖关系,后期的维护成本会越来越高. JavaScript模块化正式为了 ...
- IDEA快速创建module模块
1.新建模块 File->New->Module... 选择Maven 输入Name.Location等 2.配置模块 将以下内容增加到配置文件jeecg-boot-master-zc\j ...
最新文章
- 为了进行差错控制,必须对传送的数据帧进行校验。在局域网中广泛使用的校验方法是循环冗余校验。当接收端发现错误后采取的措施是
- 羡慕嫉妒!看了腾讯月收入 8 万 的支出账单不恨了 | 每日趣闻
- Objective-C property属性解析
- js如何去除多个cookie?
- 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现
- cuda入门——改良第一个 CUDA程序
- java dom获取属性值_java – 获取dom节点的属性
- 使用ueditor实现多图片上传案例——实体类(Shopping.java)
- 三行代码生成验证码并转换成base64
- jsp里加java代码,利用静态内部类为您的代码添加辅助功能-JSP教程,Java技巧及代码...
- 今夕何夕影迷小伙伴,喜欢的壁纸都在高图网
- 产品经理这个梗是怎么来的?
- 面面俱到,这 23 个公共数据集赶紧Mark起来!
- Java判断100到200之间所有的素数,并且输出这些素数
- 【小笔记】大数据量excel解析工具性能对比
- EDU教育网邮箱申请注册享受Apple、微软、Github等产品教育优惠附带各优惠申请教程
- 在 Java 中将 Word 转换为 PDF
- xp设置允许客户端远程连接_远程删除Windows XP客户端中的用户配置文件
- java把一个文件转化为byte字节_java把一个文件转化为byte字节
- git 删除本地仓库
热门文章
- Oracle Latch的学习【原创】
- Kteer软件 创建.ktr文件
- MLIR再深入 —— CodeGen 总结
- 扩展卢卡斯 (板子)
- CC控制服务的设计和侦测方法综述
- c语言链表中next作用,C语言链表详解
- C语言if( x)的意思,c语言 if(!x)中条件!x是什么意思
- Tracy JS 小笔记 - 数据结构 栈,队列,链表,字典,集合,哈希表(散列表)
- PyQt5入门(二十五)QSS(下)三种设置背景色和背景图片的方式
- 恍然若梦:南京珠江路一晚安利-传销经历。