默认参数
ES6 函数参数在未传值或传 undefined 时自动使用默认值。
#type / concept
#status / growing
#resource / javascript
#resource / ecmascript
[!info] related notes
- 所属 MOC: ES6 新特性 MOC, ECMAScript MOC
- 前置概念: JavaScript 函数总览
- 并列概念: rest 参数和 spread 运算符, arguments-object
默认参数
一句话定义
默认参数允许你在函数签名里直接写参数默认值,调用时如果参数是 undefined,就使用默认值。
核心内容
基本用法
function greet(name = 'world') {
return `hello ${name}`
}
只对 undefined 生效
greet() // hello world
greet(undefined) // hello world
greet(null) // hello null
默认值可以是表达式
function sum(a, b = a + 1) {
return a + b
}
默认值会在参数求值阶段执行,所以可以引用前面的参数。
边界与易混淆点
null不会触发默认值,只有undefined会- 默认参数会影响
function.length的统计 - 默认参数和解构参数经常一起出现
最短记忆方式
undefined才触发默认值- 默认值可以写表达式
- 常和解构参数一起用