ES6自带了模块化, 也是JS第一次支持module, 可以直接作用import和export在浏览器中导入和导出各个模块了, 一个js文件代表一个js模块;
ES6的模块化的基本规则或特点:
1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;
2:每一个模块内声明的变量都是局部变量, 不会污染全局作用域;
3:模块内部的变量或者函数可以通过export导出;
4:一个模块可以导入别的模块
ES6 导入导出案例:
//1.default 只能导出一次
var name = 'name1';
exprot default name;
//2.
var obj1 = {name:'name', title: 'title'};
var obj2 = 'obj2';
var obj3 = 'obj3'
export {obj1, obj2, obj3};
//1. 只会导入default模块
import name from './XX.js';
//1.结果: name1
//2.导入指定模块
import {obj1, obj2, obj3} from './XX.js';
//2.结果 {name:'name', title: 'title'}、'obj2'、'obj3'
//3.导入所有模块(as 别名,返回一个json对象)
import * as allObj from './XX.js';
//3.结果:{
name: 'name1',
obj1:{name:'name', title: 'title'},
obj2: 'obj2',
ojb3: 'obj3'
}