一、闭包
函数内部创建个函数形成闭包
闭包的应用
二、回调
在一个函数中,把另一个函数的函数名当一个参数,进行调用。
function a(){
console.log("我是函数a");
}
function b(funa){
funa();
}
b(a);
利用回调函数,在死循环中模拟定时器
function myTime(fun,time){
var date = new Date;
for(;;){
var date2 = new Date;
if(date2 - date >= time){
break;
}
}
}
myTime(function(){"time时间后打印了我"},1000);
三、递归
1、 函数内部调用函数本身(死循环,一般给一个条件,让其退出死循环)
function test(){
test();
}
2、递归面试题
var i = 10;
function test(){
var a = i--;
if(i <= 0){
return;
}
console.log(a);
test();
}
test(); //打印结果 10 9 8 7 6 5 4 3 2
var i = 10;
function test(){
var a = i--;
if(i < 0){
return;
}
test();
console.log(a);
}
test(); //结果打印出 1 2 3 4 5 6 7 8 9 10
思路:递归执行完后,再return 上一级、console.log a的值
a.png2、利用递归实现数的累加
function add(num){
if(num == 1){
return 1;
}
return num + add(num -1);
}
console.log(add(3));
网友评论