一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。

    export default命令,为模块指定默认输出。
    使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。

    1. // modules/index.js
    2. // es6模块功能主要有两个命令构成:export和import
    3. // export用于规定模块的对外接口 import用于输入其它模块提供的功能
    4. // 一个模块就是独立的文件
    5. /* export const name = '张三';
    6. export const age = 18;
    7. export function sayName(){
    8. return 'my name is 小马哥';
    9. } */
    10. // export {sayName}
    11. const name = '张三';
    12. const age = 18;
    13. function sayName() {
    14. return 'my name is 小马哥';
    15. }
    16. export {
    17. name,age,sayName
    18. }
    19. /* const obj = {
    20. foo:'foo'
    21. } */
    22. class Person{
    23. constructor(){
    24. }
    25. sayAge(){
    26. console.log('16');
    27. }
    28. }
    29. export default Person;
    1. // CommonJS和AMD
    2. // ES6 module
    3. import Person,{name,age,sayName} from './modules/index.js'
    4. // import * as f from './modules/index.js' // 抛出模块
    5. // console.log(Person);
    6. const p = new Person();
    7. p.sayAge();
    8. // console.log(f.default);
    9. // console.log(name,age,sayName());