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时任意起一个名字

上次更新:
Contributors: YangZhang