一、函数的参数默认值
1
2
3
4
5
function foo(param = 'hello'){
console.log(param)
}
foo()//结果:hello
foo('hi')//结果:hi
二、参数的解构赋值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 代码1:
function move({x = 0, y = 0} = {}) {
return [x, y];
}
console.log(move({x: 3, y: 8})); // [3, 8]
console.log(move({x: 3})); // [3, 0]
console.log(move({})); // [0, 0]
console.log(move()); // [0, 0]
// 代码2:
function move({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
console.log(move({x: 3, y: 8})); // [3, 8]
console.log(move({x: 3})); // [3, undefined]
console.log(move({})); // [undefined, undefined]
console.log(move()); // [0, 0]
三、rest参数(剩余参数)
1
2
3
4
5
6
function foo(a, b, ...param){
console.log(a)
console.log(b)
console.log(param)
}
foo(1,2,3,4,5)//结果:1 2 [3,4,5]
四、…扩展运算符
1
2
3
4
5
function foo(a, b, c, d, e){
console.log(a + b + c + d + e)
}
let arr = [1,2,3,4,5]
foo(...arr)//结果:15
扩展运算符的一个应用:合并数组
1
2
3
4
let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr3 = [...arr1, ...arr2]
console.log(arr3)//结果:[1,2,3,4,5,6]