ES6 模块化规范

Posted code-duck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 引擎静态分析,在编译时就引入模块代码,而不是在代码运行时加载,所以无法实现条件加载。也正因为这个,使得静态分析成为可能。

以上是关于ES6 模块化规范的主要内容,如果未能解决你的问题,请参考以下文章

ES6躬行记——代码模块化

JS模块导入导出规范-CommonJS | ES6 -规范案例

JS模块导入导出规范-CommonJS | ES6 -规范案例

一览js模块化:从CommonJS到ES6

ES6 模块化规范

amd cmd commonjs 模块规范 和 es6 的 module 语法