参数默认赋值
// 默认赋值
function add (x = 2, y = 3) {
return x + y;
}
多参形式
function add (...n) { // n 为数组
console.log(n.length);
}
add(1, 2, 3, 5) // 4
函数尾调用
解决函数之间调用的优化问题
最后一步调用,不一定是最后一行
典型例子:递归
let fun = (x, y) => x + y;
let fun1 = () => {
return fun(2, 3)
}
// fun 函数在得到结果以后就再也不使用了,之后会把fun的内存空间,交给fun1,两个函数共用一个内存空间
// 递归 阶乘
let factorial = (n, p=1) => {
if (n <= 1) {
return 1 * p
} else {
ler result = n*p
return factorial(n-1, result)
}
}