一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
export default命令,为模块指定默认输出。
使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。
// modules/index.js// es6模块功能主要有两个命令构成:export和import// export用于规定模块的对外接口 import用于输入其它模块提供的功能// 一个模块就是独立的文件/* export const name = '张三';export const age = 18;export function sayName(){return 'my name is 小马哥';} */// export {sayName}const name = '张三';const age = 18;function sayName() {return 'my name is 小马哥';}export {name,age,sayName}/* const obj = {foo:'foo'} */class Person{constructor(){}sayAge(){console.log('16');}}export default Person;
// CommonJS和AMD// ES6 moduleimport Person,{name,age,sayName} from './modules/index.js'// import * as f from './modules/index.js' // 抛出模块// console.log(Person);const p = new Person();p.sayAge();// console.log(f.default);// console.log(name,age,sayName());
