ES6 模块化规范

ES6 模块化规范

ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,旨在成为浏览器和服务器通用的模块解决方案。

其模块功能主要由两个命令构成:exportimport

  • export 命令用于规定模块的对外接口

  • import 命令用于输入其他模块提供的功能

/** 定义模块 math.js **/
var basicNum = 0;
var add = function (a, b) {
	return a + b;
};

/* 暴露basicNum变量和add方法*/
export { basicNum, add };

/** 引用模块 可省略.js **/
import { basicNum, add } from './math.js';
function test(ele) {
	ele.textContent = add(99 + basicNum);
} 

使用import命令的时候,用户需要知道所要加载的变量名或函数名

其实ES6还提供了export default命令,为模块指定默认输出,对应的import语句不需要使用大括号

/** export default **/
//定义输出
export default { basicNum, add };

//引入
import math from './math';
function test(ele) {
	ele.textContent = math.add(99 + math.basicNum);
}

  

ES6的模块不是对象,import命令会被 JavaScript 引擎静态分析,在编译时就引入模块代码,而不是在代码运行时加载,所以无法实现条件加载。也正因为这个,使得静态分析成为可能。

原文地址:https://www.cnblogs.com/code-duck/p/13236400.html