[TOC]node
Sea.jses6
上面两种浏览器端的模块化规范已经落伍了!github
在ES6模块化规范诞生以前,Javascript 社区已经尝试并提出了AMD、CMD、CommonJs 等模块化规范。 可是,这些社区提出的模块化标准,仍是存在必定的差别性 与局限性、并非浏览器与服务器通用的模块化标准,例如:npm
AMD和CMD适用于浏览器端的Javascript 模块化json
CommonJs适用于服务器端的Javascript 模块化浏览器
所以,ES6语法规范中,在语言层面上定义了ES6模块化规范,是浏览器端与服务器端通用的模块化开发规范。服务器
====babel
舒适提醒:你再执行上面的代码的时候最好在你的工做目录下先执行一下npm init
让项目中出现一个package.json的初始化文件! 模块化
// 当前文件模块为 m1.js // 定义私有成员 a 和 b // 外界访问不到变量d ,由于他没有被暴露出去 // 将本模块中的私有成员暴露出去, 供其余模块使用 let a = 10 let obj = { name: '小时姑娘', age: 23 } // 默认导出的方式 export default { a, obj }
// 导入模块成员 import m1 from XXXX[导入文件的路径] // 路径最好加上./否则可能会报错! import m1 from './m1.js' console.log("lvhang") console.log(m1.a) console.log(m1.obj.name)
// 按需导出 // 当前的文件模块为 m1.js // 向外按需导出变量s1 export let s1 = 'aaa'; // 向外按需导出变量s2 export let s2 = 'ccc'; // 向外按需导出方法 say export function say = function() { }
// 按需导入 // 导入模块化成员 **import { s1, s2, say } from './m1.js'** console.log(s1); console.log(s2); console.log(say);