16 JS基础之--函数高级之递归和闭包
2016-11-19 00:04
375 查看
函数三大高级操作:
函数可以做参数(回调函数)
函数可以自己调用自己(递归)
函数作为返回值(闭包)
未完待续…
函数可以做参数(回调函数)
函数可以自己调用自己(递归)
函数作为返回值(闭包)
递归:函数自己调用自己。
如果想要让递归有意义,必须有跳出条件否则就是死循环。fn();//控制台一直在打印1,死循环 function fn(){ console.log(1); fn(); } //案例1:打印1-10; var num = 1; fn(); function fn(){ console.log(num); num++ //递归的跳出条件 if(num == 11){ return; } //递归 fn(); } //案例2:累加1-100; var num = 1; var sum = 0; fn(); console.log(sum);//5050 function fn(){ sum += num; num++; //跳出条件 if(num === 101){ return; } //递归 fn(); } //案例3:累加。直接返回总和,以参数形式传递。(不需要成员变量,直接传参) console.log(fn(100));//5050 function fn(num){ //跳出条件 if(num === 1){ return 1; } //递归 return num + fn(num-1); }
闭包:函数return一个函数。
var aaa = fn();//fn的返回值 aaa();//执行fn的返回值,弹出“return返回的函数!” 以上两句也可以缩写为:fn()(); //闭包。 function fn(){ return function () { alert("return返回的函数!"); } }
未完待续…
相关文章推荐
- 14 JS基础之--函数高级之匿名函数
- Js整理备忘(06)——函数基础(二) 作用域与闭包
- js高级函数之闭包
- python函数基础(2)-----内置函数、作用域、闭包、递归
- 15 JS基础之--函数高级之回调函数
- js高级编号笔记[新]-函数
- 《JS高级程序设计》PART3.对象基础
- JavaScript基础:JS函数中声明的所有变量在整个函数中都是有定义的
- Js整理备忘(05)——函数基础(一)
- 元语言基础技术之:在JS中如何自由地创建函数
- js函数闭包
- Js 整理备忘(05)——函数基础(一)
- 基础的prototype.js常用函数及其用法
- 【JS--基础--函数】--隐含参数对象arguments的callee 属性
- js打印纸函数代码(递归)
- js bind 函数 使用闭包保存执行上下文
- 《JS高级程序设计》PART6. DOM基础
- [零基础学JAVA]Java SE面向对象部分-16.面向对象高级(04) 推荐
- 基础的prototype.js常用函数及其用法
- js打印纸函数代码(递归)