export function foo() { // .. } export var awesome = 42; var bar = [1,2,3]; export { bar }; 123456
function foo() { // .. } var awesome = 42; var bar = [1,2,3]; export { foo, awesome, bar }; 123456 导出的时候重命名:
function foo() { .. } export { foo as bar }; 12 默认导出,每个模块只能有一个默认导出:
function foo(..) { // .. } export default foo; export{ foo as default }; 12345 混合默认导出和普通的导出:
function foo() { .. } function bar() { .. } function baz() { .. } export { foo as default, bar, baz, .. }; 1234 从其他模块导出:
export { foo, bar } from "baz"; export { foo as FOO, bar as BAR } from "baz"; export * from "baz"; 123 import
import { foo } from "foo"; foo(); 12
import { foo as theFooFunc } from "foo"; theFooFunc(); import foo from "foo"; // or: import { default as foo } from "foo"; 12345
export default function foo() { .. } export function bar() { .. } export function baz() { .. } import FOOFN, { bar, baz as BAZ } from "foo"; FOOFN(); bar(); BAZ(); 12345678
export function bar() { .. } export var x = 42; export function baz() { .. } import * as foo from "foo"; foo.bar(); foo.x; // 42 foo.baz(); 12345678
import有一个hoisted的过程,和var声明变量一样:
foo(); import { foo } from "foo"; 12