函数参数默认值和 || 的区别
前言
es6
对函数进行了扩展,新增了函数传参设置默认值的功能,那么,这个默认值和 ||
有什么区别呢?
代码
function fn (str = '') {
console.log(typeof str)
}
fn(undefined) // string
fn('') // string
fn(null) // object
function fn (str) {
str = str || ''
console.log(typeof str)
}
fn(undefined) // string
fn('') // string
fn(null) // string
结论
- 函数传参默认值只能对
undefined
类型的值赋予默认值。 ||
可以对null
、undefined
2 种类型的值赋予默认值,推荐使用。