函数默认值
// 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));