export命令
模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果要从外部获取模块内部的某个变量,必须使用export关键字输出改变量。
1. `export var firstName = 'Michael';`
1. `export var lastName = 'Jackson';`
1. `export var year = 1958;`
export命令除了输出变量,还可以输出函数或类(class)
export function multiply(x, y) {
return x * y;
};
//对外输出一个函数multiply
export语句输出的接口,与其对应的值是动态绑定关系,即通过接口,可以取到模块内部实时的值
export var foo = 'bar';
setTimeout(() => foo = 'baz', 500);
上面代码输出变量foo,值为bar,500 毫秒之后变成baz
export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷。
function foo(){
export default 'bar'
}
foo()
export语句放在函数之中,结果报错。
总结
export用于从模块中导出实时绑定的函数、对象或原始值,以便其它程序通过import使用。- 被导出的绑定值依然可以在本地进行修改。
- 使用
import导入时,绑定值只能被导入模块所读取。 - 对
export模块中导出的绑定值进行修改,值会实时更新。