在ES6之前,JavaScript没有模块体系。无法将大程序拆分成相互依赖的小程序。模块功能主要由两个命令组成,export,import,Export用于暴露数据,import用于引入数据
一个模块就是一个独立的文件,该文件的所有变量,外部无法获取,如果需要获取某个变量,就要使用export把该变量暴露出去。
我们之前使用module.export的方式暴露数据,使用require导入 数据,采用require命令加载模块时,所有输出接口都会成为输入对象的属性
function test(){
console.log("大家好");
};
var num = 123;
let info = {
name:"张三吧",
age:12
}
export{ test,num,info}
将数据暴露出来,然后用import将数据引入
import{test,num,info} from ".js/test.js";
console.log()...... 这种效率高,用哪个引入那个就可以
再看下面的
function test(){
console.log("大家好");
};
var num = 123;
let info = {
name:"张三吧",
age:12
}
module.exports = {
t1 : test,
t2 : num,
t3:info
}
var a = require("./js/test.js");
使用require导入 数据,采用require命令加载模块时,所有输出接口都会成为输入对象的属性
注:export命令规定的是对外的接口,必须与模块内部建立一一对应的关系
Export default命令
使用import命令是用户需要知道所加载的变量或者函数名,否则无法加载,为了方便用户,使其不用预先知道就能加载模块,这是可以使用export default为模板指定默认输出
语法为 export default function text(){}
import t from ".js/test.js"
这时使用import导入时可以使用任意名称指定js文件的输出方法
本质上export default就是输出一个叫做Default的变量或方法,只是系统容许我们为他任意取名