诞生背景
其他都是第三方库,只有es才是官方正宗的,如果es早就制定的话,也不至于现在的这么百花齐放(混乱)的局面了
核心规范
一个文件就是一个模块
export是暴露出模块的公开方法
import是导入
实例代码
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="wrapp"> <input type="text"></br> <input type="text"></br> <button>求和</button></br> <div class="sumWrap"></div> </div> <script src="lib/jquery-3.2.1.min.js"></script> <script src="bundle.js"></script> </body> </html>
app.js
/** *模块: *功能:入口 */ import {add} from './tools'; $('button').click(function () { var num1=$('input:eq(0)').val(); var num2=$('input:eq(1)').val(); var sum=add(num1,num2); $('.sumWrap').text(sum) })
tools.js
/** *模块:tools *功能:工具 */ //除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。 import * as log from './log'; var add=function (x,y) { var sum= Number(x)+Number(y); log.info('tools>add执行结果为:'+sum); console.log(log) return sum; } export {add};
log.js
/** *模块:log模块 *功能:打印 */ var info=function (str) { console.log(str) }; var warn=function (err) { console.warn(str) }; var err=function (str) { console.error(str) }; export {info,err};
效果预览
作者说明
因为es只是出了规范,具体的是实现还是靠浏览器,目前为止没有一个浏览器支持es6模块开发规范的。所以我用了webpack编译打包了