ES6模块化规范背景

在ES6之前,浏览器端与服务器端有不同的语法规范,(曾经)比较出名的有浏览器端的CMD、AMD规范,服务器端有CommonJS规范。

但是后来都被统一的ES6规范取代了。

ES6规范

ES6规范规定:

  • 每个js都是一个独立的模块
  • 导入模块成员用import关键字
  • 暴露模块成员用export关键字

之前学webpack的时候挺疑惑为什么不能一键打包,而非要在index.js里一个一个引入js,仔细想想,似乎webpack遵循的就是ES6语法规范

//to do

在nodejs中使用ES6

首先需要配置一下babel

然后创建一个index.js瞎写写就行了

ES6模块化规范的基本语法

默认导出

使用export default,导出的是一个对象。

注意每个js文件仅能使用一次export default

let a = 5, b = 2;
let c = a / b;
const show = (a, b, c) => {
  return a + b + c;
}
const show2 = function(a, b, c) {
  return a + b + c;
}
export default {
  c: c,
  d: "233",
  e: show,
  f: show2
}

默认导入

使用import x from path,其中x是导出对象的别名,path是来源文件的路径

按需导出

导出的变量必须是新定义的变量,这样可以保证不会存在调用的歧义

let s2 = "123"
export let s1 = s2;

按需导入

使用import {变量名} from path来导入变量,注意,这里的变量名必须要和按需导出的一致!

直接导入

使用import path可以导入整个js文件


一只菜鸡