ES6

ES6深入浅出之ES6模块

Posted by weite122 on 2019-01-10

import

  • import语句用于导入由另一个模块导出的绑定。无论是否声明了 strict mode ,导入的模块都运行在严格模式下。在浏览器中, import语句只能在声明了type="module"的script的标签中使用。

语法

1
2
3
4
5
6
7
8
9
10
11
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
import { foo , bar } from "module-name/path/to/specific/un-exported/file";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
var promise = import("module-name");
  • defaultExport
    • 将引用模块默认导出的名称。
  • module-name
    • 要导入的模块。这通常是包含模块的.js文件的相对或绝对路径名,不包括.js扩展名。某些打包工具可以允许或要求使用该扩展;检查你的运行环境。只允许单引号和双引号的字符串。
  • name
    • 引用时将用作一种命名空间的模块对象的名称。
  • export, exportN
    • 要导入的导出名称。
  • alias, aliasN
    • 将引用指定的导入的名称。

export

  • export语句用于在创建JavaScript模块时,从模块中导出函数、对象或原始值,以便其他程序可以通过 import 语句使用它们。

语法

1
2
export { name1, name2, …, nameN };
export default expression;

描述

  • 有两种不同的导出方式,每种方式对应于上述的一种语法:

  • 命名导出:

    1
    2
    3
    4
    5
    // exports a function declared earlier
    export { myFunction };

    // exports a constant
    export const foo = Math.sqrt(2);
  • 默认导出(函数):

    1
    export default function() {}
  • 默认导出(类):

    1
    export default class {}