es6 export 命令
export 命令
ES6的模块功能主要由两个命令构成:export
和import
。export
命令用于规定模块的对外接口,import
命令用于输入其他模块提供的功能。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export
关键字输出该变量。下面是一个 JS 文件,里面使用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};
上面代码在export
命令后面,使用大括号指定所要输出的一组变量。它与前一种写法(直接放置在var
语句前)是等价的,但是应该优先考虑使用这种写法。因为这样就可以在脚本尾部,一眼看清楚输出了哪些变量。
ES6 export
命令除了输出变量,还可以输出函数或类(class)。
export function multiply(x, y) {
return x * y;
};
上面代码对外输出一个函数multiply
。
通常情况下,export
输出的变量就是本来的名字,但是可以使用as
关键字重命名。
function v1() { ... }
function v2() { ... }
export {
v1 as streamV1,
v2 as streamV2,
v2 as streamLatestVersion
};
上面代码使用as
关键字,重命名了函数v1
和v2
的对外接口。重命名后,v2
可以用不同的名字输出两次。
需要特别注意的是,export
命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
// 报错
export 1;
// 报错
var m = 1;
export m;
上面两种写法都会报错,因为没有提供对外的接口。第一种写法直接输出 1,第二种写法通过变量m
,还是直接输出 1。1
只是一个值,不是接口。正确的写法是下面这样。
// 写法一
export var m = 1;
// 写法二
var m = 1;
export {m};
// 写法三
var n = 1;
export {n as m};
上面三种写法都是正确的,规定了对外的接口m
。其他脚本可以通过这个接口,取到值1
。它们的实质是,在接口名与模块内部变量之间,建立了一一对应的关系。
同样的,function
和class
的输出,也必须遵守这样的写法。
// 报错
function f() {}
export f;
// 正确
export function f() {};
// 正确
function f() {}
export {f};
另外,export
语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。
export var foo = 'bar';
setTimeout(() => foo = 'baz', 500);
上面代码输出变量foo
,值为bar
,500 毫秒之后变成baz
。
这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新,详见下文《Module 的加载实现》一节。
最后,export
命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,下一节的import
命令也是如此。这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷。
function foo() {
export default 'bar' // SyntaxError
}
foo()
上面代码中,export
语句放在函数之中,结果报错。
es6 export 命令相关推荐
- java 无法执行export 命令_模块中的export、import以及复合模式的使用方法
export:规定模块对外接口 ①默认导出:export default Test(导入时可指定模块任意名称,无需知晓内部真实名称) ②单独导出:export const name = "B ...
- 五、Vue模块化开发学习笔记——JavaScript原始功能、匿名函数的解决方案、使用模块作为出口、CommonJS、ES6 export和import的使用
一.JavaScript原始功能 -在网页开发的早期,js制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候代码还是很少的. 那个时候的代码是怎么写的呢? 直接将代码写在<scri ...
- es6 import 命令
import 命令 使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块. // main.js import {firstName, lastName ...
- Linux中使用export命令设置环境变量
Linux export 命令 2011-08-31 22:36:39| 分类: 命令总结|举报|字号 订阅 功能说明:设置或显示环境变量. ############################ ...
- java export命令_Linux 命令详解(一)export 命令
一.Windows 环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似 ...
- 【Linux】5.linux下的export命令和环境变量
linux下的export命令和环境变量 linux中在 profile 或者 bashrc 或者其他类似的文件中设置环境变量时(比如PATH),如果没有export,那么只能在直接启动的shell中 ...
- export命令添加和删除环境变量
export命令 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量. export可新增 ...
- 【Linux】一步一步学Linux——export命令(211)
00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 export命令用于将shell变量输出为环境变量,或者将 ...
- Linux export 命令用法
Linux export 命令用法 Linux export 命令用于设置或显示环境变量. 在 shell 中执行程序时,shell 会提供一组环境变量.export 可新增,修改或删除环境变量,供后 ...
最新文章
- [置顶] 浅析objc的消息机制
- 平板电脑计算机怎么关按键音,平板电脑输入法怎么设置【图解】
- Java对象在Java虚拟机的创建过程
- 网易云音乐测开面试题整理
- Linux系统rootpassword改动
- inode mac客户端_淘宝直播PC客户端适合哪些场景使用?
- 对 SharePoint WebService 的调用
- 攻击防御实例——SQL注入
- dlna和miracast可以共存吗_关于无线显示技术,AirPlay,DLNA,Miracast,WiDi 等有何异同?...
- 利用C语言读取WAV文件
- 用友适合套打的打印机所有型号和问题
- abb机器人编程指令goto指令_abb机器人编程指令——轨迹偏移使用的指令以及moveL指令...
- 出席华盛顿大学以人为本用户体验设计领导力活动 探讨区块链的用户体验 | ArcBlock 活动...
- 2018-11-15-mqtt-mosquitto系列11之配置基于ca证书的桥接
- 电脑网页无法解析服务器dns,电脑无法解析服务器dns地址怎么办
- Chrome 66之后禁止网页声音自动播放问题解决
- 从向量空间的角度来理解方程组有无解的问题
- 使用服务器端控制AJAX页面缓存
- 电磁场与电磁波实验 01 - | 位移电流测量及电磁场与电磁波的存在实验
- 以太坊 POA 部署