一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用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 module
import 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());