#递归
递归:通俗来说程序调用自身的编程技巧称为递归。
话不多说,实例解释
例一:
实际上这张图就很形象地表达出了递归,这句
吓得我抱起了抱着抱着抱着我的小鲤鱼的我的我的我
如果从字面意义上看可能看不出是什么意思,那么我们可以通过代码来实现同样的效果:
function test(x) {
console.log('抱着');
if (!x) {
console.log('我的小鲤鱼')
} else {
test(--x); // 递归调用
}
console.log('的我');
}
console.log('吓得我抱起了');
test(2)
// x=3
// (x++)+(++x)=?
例二:
斐波拉契数列
1,1,2,3,5,8,13,21…
function fib(count) {
//参数判断
var count = parseInt(count);
if (isNaN(count) || count < 0) {
return 0;
}
function f(count) {
if (count <= 1)
return 1;
return f(count - 1) + f(count - 2);
}
return f(count);
}
res = fib(2);
console.log(res);
补充:a++和++a 都属于自增运算符,区别是对变量a的值进行自增的时机不同。a++是先进行取值,后进行自增。++a是先进行自增,后进行取值。
例如:假设 x=3
(x++)+(++x)
解释:对于第一个(x++),因为x++是先取值后自增,所以(x++)所取得值为3,然后x进行自增,此时x=4;对于第二个(++x),因为++x是先自增后取值,所以(++x)所取得值为5,此时x=5,所以结果为8。