ES6模块主要有两个功能:export和import
export:用于对外输出本模块(一个文件可以理解为一个模块)变量的接口
import:用于在一个模块中加载另一个含有export接口的模块。
// a.js var sex="boy"; var echo=function(value){ console.log(value) } export {sex,echo} //通过向大括号中添加sex,echo变量并且export输出,就可以将对应变量值以sex、echo变量标识符形式暴露给其他文件而被读取到 //不能写成export sex这样的方式,如果这样就相当于export "boy",外部文件就获取不到该文件的内部变量sex的值,因为没有对外输出变量接口,只是输出的字符串。 // b.js 通过import获取a.js文件的内部变量,{}括号内的变量来自于a.js文件export出的变量标识符。 import {sex,echo} from "./a.js"console.log(sex) // boy echo(sex) // boy
使用方法
1、
//demo1.js export const str ='hello world'exportfunction f(a){ return a+1}
导入方式:
//demo2.js import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号
2、
//demo1.js export default const str ='hello world'
//demo2.js import str from 'demo1' //导入的时候没有花括号
注意: 1、export default 向外暴露的成员,可以使用任意变量来接收 2、在一个模块中,export default 只允许向外暴露一次 3、在一个模块中,可以同时使用export default 和export 向外暴露成员 4、使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】 5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义 6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收 7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名