export
和 export default
是 JavaScript ES6 模块系统中用于导出模块成员的两个关键字。它们的主要区别如下:
- 导出数量 :
-
export
:允许在一个模块中导出多个值(常量、函数、类等)。 -
export default
:在一个模块中只能有一个默认导出。
- 导入语法 :
-
export
:导入时需要使用花括号{}
,并且需要指定导入的变量名与导出时的名称一致。 -
export default
:导入时不需要花括号,可以直接使用导入的变量名,也可以使用as
关键字为其指定别名。
- 使用场景 :
-
export
:当你需要从一个模块中导出多个特定的值或函数时,使用export
。 -
export default
:当你希望为一个模块提供一个默认的输出值,或者输出的值不关心具体名称时,使用export default
。
举例说明:
// 文件 a.js
export const str = "hello world";
export function greet() {
return "Hello!";
}
// 文件 b.js
import { str, greet } from "a";
console.log(str); // 输出 "hello world"
console.log(greet()); // 输出 "Hello!"
// 文件 c.js
import defaultExport from "a";
console.log(defaultExport); // 输出 "hello world"
需要注意的是,export
和 export default
不可以同时使用在一个模块中。每个模块应该只选择其中一种方式来导出成员