export 和 export default 和export * 的区别

在 JavaScript 模块中,exportexport default 是用来导出模块中的内容(变量、函数、类等)的关键字,它们之间有一些区别:

1.export export 关键字用于将声明的变量、函数或类导出,可以导出多个值,需要在导入时使用对应的名称来引用。// module.js
export const a = 1;
export function hello() {
    return "Hello!";

// 可以通过解构赋值导入

import { a, hello } from './module.js';

2.export default export default 用于导出模块的默认值,一个模块只能有一个默认导出,不需要使用花括号语法,可以为任意的值,包括函数、类、对象等。

// module.js

const a = 1; export default a;

// 可以直接导入默认值

import myDefault from './module.js';

3.export * 是 JavaScript 模块中的一种语法,用于将一个模块中的所有导出内容重新导出到另一个模块中。这个语法允许在一个模块中重新导出另一个模块的所有内容,而不必逐个重新导出每个内容。

举个例子,假设我们有一个模块 module1.js

// module1.js
export const a = 1;
export function hello() {
    return "Hello!";
}
export class MyClass {
    // class definition
}

现在,我们可以在另一个模块中使用 export *module1.js 中的所有导出内容重新导出:

// module2.js

export * from './module1.js';

这样,module2.js 中就会重新导出 module1.js 中的所有导出内容,包括常量 a、函数 hello 和类 MyClass。相当于在 module2.js 中也可以通过相同的名称来访问这些导出的内容,而不必重新定义或重命名它们。

总结一下:

  • 使用 export 导出的值需要通过对应的名称来导入。
  • 使用 export default 导出的值可以通过任意的名称来导入,并且一个模块只能有一个默认导出。
  • 需要注意的是,export * 只能导出其他模块中通过 export 导出的内容,不能导出默认导出。如果想要重新导出默认导出,可以通过 export { default } from './module.js'; 的形式单独导出默认导出。

在实际应用中,通常情况下我们会在一个模块中使用 export 导出多个值,而在另一个模块中使用 export default 导出默认值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值