import

静态的import语句用于导由另一个模块导出的绑定,无论是否声明了严格模式(strict mode),导入的模块都运行在严格模式下。

在浏览器中,import语句只能在声明了type=”module”的script标签中使用

import()

动态导入,不需要依赖type=”module”的script标签

动态导入 vs 静态导入

  • import()动态导入可以按照一定的条件或者按需加载模块
  • 静态的import可以初始化加载依赖项,更容易从代码静态分析工具和tree shaking中受益

    export

    用于从模块中导出实时绑定的函数、对象或原始值,以便其他程序可以通过import语句使用他们,在export导出模块中对这些绑定值进行修改,所修改的值也会实时的更新

    命名导出

    每个模块包含任意数量

  1. export let a,b,c
  2. export function fn () {}
  3. export class cl {}
  4. // 或者
  5. let a,b,c
  6. function fn () {}
  7. class cl {}
  8. export {
  9. a,
  10. b,
  11. c,
  12. fn,
  13. cl
  14. }

默认导出

每个模块只有一个,export default,不能使用varletconst

  1. // 默认导出函数
  2. export default function () {}
  3. // 默认导出类
  4. export default class {}

import
export