函数默认值
// es6 默认参数function foo(a="a", b="b"){console.log(a, b);}foo(1);function foo(a, b){// 最好写成arguments,这样与实参一一对应a = aruguments[0] || "a";b = aruguments[1] || "b";console.log(a, b);}foo(1);function foo(a, b){if (typeof(aruguments[0]) !== "undefined"){a = "a";}if (typeof(aruguments[1]) !== "undefined"){b = "b";}console.log(a, b);}foo(1);// 三元运算function foo(a, b){a = typeof(aruguments[0]) !== "undefined" ? a : "a";b = typeof(aruguments[1]) !== "undefined" ? b : "b";console.log(a, b);}foo(1);
递归
n的阶乘
function foo(n){
if (n==1) return 1;
return foo(n-1)*n;
}
console.log(foo(5));
递归概念
函数自己调用自己, 慎用递归,递归大部分都可以用for循环实现。
斐波那契数列
f(n) = f(n-1)+f(n-2)
function fib(n){
if (n <= 0) return 0;
if (n <= 2) return 1;
if (n == 3) return 2;
return fib(n-1)+fib(n-2);
}
// fib(5) = fib(4)+fib(3)
// fib(4) = fib(3)+fib(2);
console.log(fib(6));
