1. ES5之前
function log(x,y){
if(typeof y === 'undefined'){
y = 'World'
}
console.log(x,y)
}
console.log(log('Hello'))
console.log(log('Hello','China'))
console.log(log('Hello',''))
2. ES6
function log(x, y = 'World') {
console.log(x, y);
}
log('Hello')
log('Hello', 'China')
log('Hello', '') // Hello
3. 与解构赋值默认值结合使用
function foo({x,y=5} = {}){
console.log(x,y)
}
foo()
function m1({x = 0, y = 0} = {}) {
return [x, y];
}
function m2({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
m1()
m2()
m1({x: 3, y: 8})
m2({x: 3, y: 8})
m1({x: 3})
m2({x: 3})
m1({})
m2({})
m1({z: 3})
m2({z: 3})
4. rest