在线文档教程

export

导出

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

此功能目前仅在Safari中本地实现。它在许多转译器中实现,如Traceur编译器BabelRollup

语法

export { name1, name2, …, nameN }; export { variable1 as name1, variable2 as name2, …, nameN }; export let name1, name2, …, nameN; // also var, function export let name1 = …, name2 = …, …, nameN; // also var, const export default expression; export default function (…) { … } // also class, function* export default function name1(…) { … } // also class, function* export { name1 as default, … }; export * from …; export { name1, name2, …, nameN } from …; export { import1 as name1, import2 as name2, …, nameN } from …;

nameN要导出的标识符(以便可以通过import另一个脚本导入)。

描述

有两种不同类型的出口。每种类型都对应于以上语法之一:

  • Named exports: // exports a function declared earlier export { myFunction }; // exports a constant export const foo = Math.sqrt(2

命名导出对于导出多个值很有用。在导入过程中,可以使用相同的名称来引用相应的值。

关于默认导出,每个模块只有一个默认导出。默认导出可以是函数,类,对象或其他任何东西。此值将被视为“主”导出值,因为它将是最简单的导入值。

导出默认值:以下语法不会从导入的模块默认导出:

export * from …;

如果您需要导出默认值,请改为输入以下内容:

import mod from "mod"; export default mod;

例子

使用命名的导出

在模块中,我们可以使用下面的代码:

// module "my-module.js" function cube(x) { return x * x * x; } const foo = Math.PI + Math.SQRT2; export { cube, foo };

这样,在另一个脚本(参见import)中,我们可以:

import { cube, foo } from 'my-module'; console.log(cube(3) // 27 console.log(foo // 4.555806215962888

使用默认导出

如果我们想要导出单个值或为我们的模块设置回退值,我们可以使用默认导出:

// module "my-module.js" export default function cube(x) { return x * x * x; }

然后,在另一个脚本中,将直接导入默认导出:

import cube from 'my-module'; console.log(cube(3) // 27

请注意,这是不可能使用varletconstexport default

规格

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Exports' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Exports' in that specification.Living Standard

浏览器兼容性

FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support61 (60 w/ flag)No support (54 w/ flag)No support (15 w/flag)No support10.1

FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo supportNo supportNo supportNo supportNo support10.3