默认参数允许在函数定义时为参数指定默认值,当未传参或传入undefined时生效。例如function greet(name = "游客")会输出“你好,游客!”;支持表达式、函数调用及前参引用,常用于配置对象、可选字段等场景,提升代码健壮性与可读性。

在 JavaScript 中,函数参数如果没有传值,会默认为 undefined,这可能导致程序出错或产生非预期结果。使用默认参数可以有效避免这类问题,让函数更健壮、更易用。
什么是默认参数?
默认参数允许你在定义函数时为参数指定一个默认值,当调用函数时没有传递该参数或传的是 undefined,就会使用这个默认值。
语法非常简单,直接在参数后面用等号赋值即可:
function greet(name = "游客") {console.log("你好," + name + "!");
}
greet(); // 输出:你好,游客!
greet("小明"); // 输出:你好,小明!
默认参数的实际应用场景
默认参数特别适合处理配置对象、可选输入和工具函数。
立即学习“Java免费学习笔记(深入)”;
- 配置项函数:很多函数接受一个选项对象,某些字段可选
- 数学计算:某些参数有合理的默认行为(如延迟时间、重试次数)
- 字符串格式化:提供默认分隔符或模板
function createPost(title, author, published = true, tags = []) {
return { title, author, published, tags };
}
createPost("JavaScript 入门", "张三");
// 返回:
// {
// title: "JavaScript 入门",
// author: "张三",
// published: true,
// tags: []
// }
默认参数的注意事项
虽然默认参数使用简单,但有几个关键点需要注意:
- 只有 undefined 或未传值时才会触发默认值,传 null 不会
- 默认值可以是表达式,甚至调用其他函数
- 后面的参数可以引用前面的参数
function logTime(msg, time = new Date().toLocaleString()) {
console.log([${time}] ${msg});
}
logTime("页面加载完成");
// 输出:[2025/4/5 10:23:45] 页面加载完成
还可以利用前一个参数作为后一个参数的默认值:
function multiply(a, b = a) {return a * b;
}
multiply(5); // 返回 25(相当于 5 * 5)
multiply(5, 2); // 返回 10
基本上就这些。合理使用默认参数能让你的函数更灵活,减少条件判断,提升代码可读性。不复杂但容易忽略的小技巧,值得掌握。










