1. 概述
// ES6模块
import { stat, exists, readFile } from 'fs';
ES6通过使用模块来进行导入一个js文件,并且这种加载称为静态加载,即只加载导入的方法
2. export
export
用于指定对外输出的接口,一个文件就是一个模块,内部代码在外部无法调用,如果想要调用,那么就要使用export
将其导出,可以导出变量,函数,类
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;
export { firstName as first, lastName, year };
// 通过as进行重命名
export function multiply(x, y) {
return x * y;
};
需要特别注意的是,export
命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
// 报错
export 1;
// 报错
var m = 1;
export m;
// 正确写法
var m = 1;
export {m};
3. import
通过import
就可以导入外部导出的模块,注意导入的变量都是只读的,对象是可改的,但不建议这么左。同时,import
具有提升效果,会自动提升到文件头部,首先执行。
// main.js
import { firstName, lastName, year } from './profile.js';
function setName(element) {
element.textContent = firstName + ' ' + lastName;
}
import {a} from './xxx.js'
a = {}; // Syntax Error : 'a' is read-only;
import
可以使用*
进行整体加载
import * as circle from './circle';
console.log('圆面积:' + circle.area(4));
console.log('圆周长:' + circle.circumference(14));
同时,当导出时使用export default
时,允许import
时任意起一个名字