首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

export

导出

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

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

语法

代码语言:javascript
复制
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);
  • Default exports (function): export default function() {}
  • Default exports (class): export default class {}

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

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

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

代码语言:javascript
复制
export * from …;

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

代码语言:javascript
复制
import mod from "mod";
export default mod;

例子

使用命名的导出

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

代码语言:javascript
复制
// module "my-module.js"
function cube(x) {
  return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export { cube, foo };

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

代码语言:javascript
复制
import { cube, foo } from 'my-module';
console.log(cube(3)); // 27
console.log(foo);    // 4.555806215962888

使用默认导出

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

代码语言:javascript
复制
// module "my-module.js"
export default function cube(x) {
  return x * x * x;
}

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

代码语言:javascript
复制
import cube from 'my-module';
console.log(cube(3)); // 27

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

规格

Specification

Status

Comment

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Exports' in that specification.

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'Exports' in that specification.

Living Standard

浏览器兼容性

Feature

Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

61 (60 w/ flag)

No support (54 w/ flag)

No support (15 w/flag)

No support

10.1

Feature

Android

Chrome for Android

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

No support

No support

No support

No support

10.3

扫码关注腾讯云开发者

领取腾讯云代金券