**
javascript从入门到跑路-----小文的js学习笔记(1)---------script、alert、document。write() 和 console.log 标签
javascript从入门到跑路-----小文的js学习笔记(2)--------- 语法构成、关键字和保留字、变量
javascript从入门到跑路-----小文的js学习笔记(3)---------javascript中的几种数据类型
…
…
javascript从入门到跑路-----小文的js学习笔记目录
**
关注小文我们一起学习进步。
今天主要学习的知识,是js中的递归函数和 闭包。
我们先来看第一个
一、递归函数
含义: 就是在函数内调用自己本身,则称之为递归函数。
举两个我们常见的例子:
例(1):求和
执行结果:在我们函数内它又会执行本身一直到number等于1,才会停止,相当于4+3+2+1
例(2):阶乘
执行结果:相当于432*1
注意: 递归函数常用来解决一些循环重复的问题,但是一定要设置结束条件,否则就会导致死循环。
二、闭包
含义: 闭包是有权访问其他函数作用域中变量的函数。(但是前面学到的作用域链说到内部的才有权访问外部的,而外部的无法访问内部的,那么我理解的闭包肯定就是在其他函数内部的函数 )
我们简单举个例子:fn函数内还有一个函数
执行结果:很显然这里内部的函数 就使用了外部函数的变量b
虽然闭包在我们开发中还是扮演着一个重要的角色,但是它还是有着它本身的一些优缺点。
优点: 内部函数有权访问外部函数的局部变量。
缺点: 闭包会导致变量 不会被系统的垃圾回收机制所处理,所以这些变量和参数会一直被保存着,很大程度上消耗着内存,如果使用不当可能会造成内存泄露的情况。
即这些可以总结为闭包的三大特性:
函数嵌套函数
函数的内部可以访问外部的参数和和变量
变量和参数不会被自动回收
**
Will be kind to everyone’s enthusiasm, not to please anyone’s cold.
-------------------------------------------不亏待每一份热情, 也不讨好任何冷漠