ZetCode

JavaScript default 关键字

最后修改于 2025 年 4 月 16 日

在本文中,我们将探讨 JavaScript 中的 default 关键字,涵盖其在 switch 语句、export/import 语句和函数参数中的用法。

default 关键字

JavaScript 中的 default 关键字有多种用途。它主要用作 switch 语句中的备用情况,以及模块系统中用于默认的导出/导入。它提供了一种处理未指定情况的方法。

在 switch 语句中,当没有其他情况匹配时,default 会执行。在模块中,它标记主要的导出/导入。该关键字通过提供备用行为使代码更健壮、更灵活。

理解 default 对于编写全面的 switch 语句和使用 JavaScript 模块至关重要。它是现代 JavaScript 开发的一个基本部分。

switch 语句中的基本 default

default 最常见的用法是在 switch 语句中作为备用情况。

main.js
const day = 'Sunday';

switch (day) {
    case 'Monday':
        console.log('Start of work week');
        break;
    case 'Friday':
        console.log('End of work week');
        break;
    default:
        console.log('Weekend or other day');
}

在这里,default 处理任何不是星期一或星期五的日期。它充当未指定情况的“万能”情况。default 情况确保即使输入意外,也会执行一些代码。

$ node main.js
Weekend or other day

模块中的默认导出

default 关键字用于标记模块的主要导出。

math.js
const PI = 3.14159;

export default function circleArea(r) {
    return PI * r * r;
}

该模块导出一个用于计算圆面积的默认函数。一个模块只能有一个默认导出。默认导出可以使用任何名称导入。

main.js
import calculateArea from './math.js';

console.log(calculateArea(5));
$ node main.js
78.53975

默认导入语法

默认导入不需要大括号,并且可以使用任何名称。

main.js
import myFunction from './module.js';

myFunction();

这展示了默认导入与命名导入的区别。导入的值可以使用任何标识符引用。默认导入在命名方面更灵活。

函数中的默认参数

虽然未使用 default 关键字,但默认参数具有提供备用值的类似作用。

main.js
function greet(name = 'Guest') {
    console.log(`Hello, ${name}!`);
}

greet();          // Uses default
greet('Alice');   // Overrides default

当省略参数时,默认参数提供值。它们通过优雅地处理缺失的输入,使函数更健壮。这种模式在概念上类似于默认情况。

$ node main.js
Hello, Guest!
Hello, Alice!

组合默认导出和命名导出

一个模块可以同时具有默认导出和命名导出。

utils.js
export const version = '1.0';

export default function main() {
    console.log('Main function');
}
main.js
import mainFunc, { version } from './utils.js';

mainFunc();
console.log(`Version: ${version}`);

这展示了如何在单个模块中混合使用默认导出和命名导出。默认导出无需大括号即可导入,而命名导出则使用解构语法。

$ node main.js
Main function
Version: 1.0

带有 break 的默认情况

switch 语句中的 default 情况可以使用 break

main.js
const grade = 'B';

switch (grade) {
    case 'A':
        console.log('Excellent');
        break;
    case 'B':
        console.log('Good');
        break;
    default:
        console.log('Unknown grade');
        break;
}

虽然在最后一个 case 之后不是必需的,但在 default 中包含 break 是一个好习惯。如果以后添加 case,它会阻止错误。这使得代码更易于维护。

$ node main.js
Good

对象的默认导出

对象可以作为默认值从模块导出。

config.js
const config = {
    apiUrl: 'https://api.example.com',
    timeout: 5000
};

export default config;
main.js
import appConfig from './config.js';

console.log(`API: ${appConfig.apiUrl}`);
console.log(`Timeout: ${appConfig.timeout}ms`);

这演示了将对象作为默认导出。整个对象可以用一个标识符导入。这对于配置对象或主要数据结构很有用。

$ node main.js
API: https://api.example.com
Timeout: 5000ms

来源

导出 - 语言参考

在本文中,我们演示了如何在 JavaScript 的各种上下文中(包括 switch 语句和模块导出)使用 default 关键字。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。