JavaScript默认参数在函数定义时为形参预设值,调用时传undefined或不传则启用;支持表达式和函数调用(每次重新求值),但null不触发默认值,需用??或三元运算符处理。

JavaScript 的默认参数是指在函数定义时,为形参预先指定一个值;当调用函数时没有传入对应实参(或传入 undefined),该参数就会自动使用这个预设值。它让函数更健壮,主要是因为减少了对参数存在性的手动检查,避免了因缺失参数导致的运行时错误或意外行为。
默认参数让函数调用更灵活
不用再写一堆 if (param === undefined) param = 'default' 这样的冗余逻辑。ES6 之后可以直接在参数列表里写清楚:
function greet(name = 'Guest', msg = 'Hello') { return `${msg}, ${name}!`; } 调用 greet() → "Hello, Guest!" 调用 greet('Alice') → "Hello, Alice!" 调用 greet(undefined, 'Hi') → "Hi, Guest!"(undefined 触发默认值)
它能防止常见错误,比如访问 undefined 属性
以前常要这样写:
function printUser(user) { console.log(user.name || 'Anonymous'); } 但如果 user 是 null 或根本没传,user.name 就会报错 Cannot read property 'name' of undefined
用默认参数配合解构,就能提前兜底:
立即学习“Java免费学习笔记(深入)”;
function printUser({ name = 'Anonymous', age = 0 } = {}) { console.log(name, age); } printUser()、printUser(null)、printUser({}) 全部安全执行
默认值支持表达式和函数调用
默认值不只能是字面量,还可以是任意表达式,包括函数调用——而且每次调用函数时都会重新求值(不是定义时缓存):
function log(time = Date.now(), msg = `Log at ${time}`) { console.log(msg); } log() 每次输出的时间戳都不同 适合需要动态默认值的场景,比如生成唯一 ID、获取当前配置等
注意:undefined 才触发默认值,null 不会
这是容易忽略的关键点:
function f(x = 'default') { return x; } f() → 'default'(没传,等价于 f(undefined)) f(null) → null(显式传了 null,不会回退到默认值) 如果希望 null 也走默认逻辑,得手动处理:x ?? 'default' 或 x == null ? 'default' : x
基本上就这些。默认参数不是炫技,而是把“参数容错”这件事从函数体里提到签名层,让代码更直白、更少出错、更容易维护。
以上就是什么是JavaScript的默认参数_它如何让函数更健壮呢的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543326.html
微信扫一扫
支付宝扫一扫