JavaScript default 关键字
最后修改于 2025 年 4 月 16 日
在本文中,我们将探讨 JavaScript 中的 default 关键字,涵盖其在 switch 语句、export/import 语句和函数参数中的用法。
default 关键字
JavaScript 中的 default 关键字有多种用途。它主要用作 switch 语句中的备用情况,以及模块系统中用于默认的导出/导入。它提供了一种处理未指定情况的方法。
在 switch 语句中,当没有其他情况匹配时,default 会执行。在模块中,它标记主要的导出/导入。该关键字通过提供备用行为使代码更健壮、更灵活。
理解 default 对于编写全面的 switch 语句和使用 JavaScript 模块至关重要。它是现代 JavaScript 开发的一个基本部分。
switch 语句中的基本 default
default 最常见的用法是在 switch 语句中作为备用情况。
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 关键字用于标记模块的主要导出。
const PI = 3.14159;
export default function circleArea(r) {
return PI * r * r;
}
该模块导出一个用于计算圆面积的默认函数。一个模块只能有一个默认导出。默认导出可以使用任何名称导入。
import calculateArea from './math.js'; console.log(calculateArea(5));
$ node main.js 78.53975
默认导入语法
默认导入不需要大括号,并且可以使用任何名称。
import myFunction from './module.js'; myFunction();
这展示了默认导入与命名导入的区别。导入的值可以使用任何标识符引用。默认导入在命名方面更灵活。
函数中的默认参数
虽然未使用 default 关键字,但默认参数具有提供备用值的类似作用。
function greet(name = 'Guest') {
console.log(`Hello, ${name}!`);
}
greet(); // Uses default
greet('Alice'); // Overrides default
当省略参数时,默认参数提供值。它们通过优雅地处理缺失的输入,使函数更健壮。这种模式在概念上类似于默认情况。
$ node main.js Hello, Guest! Hello, Alice!
组合默认导出和命名导出
一个模块可以同时具有默认导出和命名导出。
export const version = '1.0';
export default function main() {
console.log('Main function');
}
import mainFunc, { version } from './utils.js';
mainFunc();
console.log(`Version: ${version}`);
这展示了如何在单个模块中混合使用默认导出和命名导出。默认导出无需大括号即可导入,而命名导出则使用解构语法。
$ node main.js Main function Version: 1.0
带有 break 的默认情况
switch 语句中的 default 情况可以使用 break。
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
对象的默认导出
对象可以作为默认值从模块导出。
const config = {
apiUrl: 'https://api.example.com',
timeout: 5000
};
export default config;
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 关键字。