咨询类网站模板,网站建设的网页,个人网站的色彩设计怎么做,河北人社app安卓版参考#xff1a; 前端模块化 ES6 在语言标准的层面上#xff0c;实现了模块功能#xff0c;而且实现得相当简单#xff0c;旨在成为浏览器和服务器通用的模块解决方案。 其模块功能主要由两个命令构成#xff1a;export和import。export命令用于规定模块的对外接口#x…参考 前端模块化 ES6 在语言标准的层面上实现了模块功能而且实现得相当简单旨在成为浏览器和服务器通用的模块解决方案。 其模块功能主要由两个命令构成export和import。export命令用于规定模块的对外接口 import命令用于输入其他模块提供的功能。 使用import命令的时候用户需要知道所要加载的变量名或函数名 /** 定义模块 math.js **/
var basicNum 0;
var add function (a, b) {return a b;
};// export命令用于规定模块的对外接口
export { basicNum, add };/** 引用模块 **/// import命令用于输入其他模块提供的功能
import { basicNum, add } from ./math;
function test(ele) {ele.textContent add(99 basicNum);
}复制代码其实ES6还提供了export default命令为模块指定默认输出对应的import语句不需要使用大括号。这也更趋近于ADM的引用写法。 /** export default **/
//定义输出
export default { basicNum, add };
//引入
import math from ./math;
function test(ele) {ele.textContent math.add(99 math.basicNum);
}复制代码ES6的模块不是对象import命令会被 JavaScript 引擎静态分析在编译时就引入模块代码而不是在代码运行时加载所以无法实现条件加载。也正因为这个使得静态分析成为可能。 ES6 模块与commonJS模块的差异 1. commonJS 模块输出的是一个值的拷贝ES6模块输出的是值的引用 commonJS模块一旦输出一个值模块内部的变化就影响不到这个值。ES6模块如果使用import从一个模块加载变量那些变量不会被缓存而是成为一个指向被加载模块的引用原始值变了import加载的值也会跟着变。需要开发者自己保证真正取值的时候能够取到值。2. commonJS 模块是运行时加载ES6 模块是编辑时输出接口 运行时加载commonJS 模块就是对象即在输入时是先加载整个模块生成一个对象然后再从这个对象上读取方法这种加载称为“运行时加载”。commonJS脚本代码在require的时候就会全部执行。一旦出现某个模板被“循环加载”就只能输出已经执行的部分还未执行的部分不会输出。 编译时加载ES6 模块不是对象而是通过export命令显式指定输出的代码import时指定加载某个输出值而不是加载整个模块这种加载称为“编译时加载”。