javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包

**
javascript从入门到跑路-----小文的js学习笔记(1)---------script、alert、document。write() 和 console.log 标签

javascript从入门到跑路-----小文的js学习笔记(2)--------- 语法构成、关键字和保留字、变量

javascript从入门到跑路-----小文的js学习笔记(3)---------javascript中的几种数据类型


javascript从入门到跑路-----小文的js学习笔记目录
**

       关注小文我们一起学习进步。

      今天主要学习的知识,是js中的递归函数和 闭包。

我们先来看第一个

一、递归函数

      含义: 就是在函数内调用自己本身,则称之为递归函数。

举两个我们常见的例子:

例(1):求和
javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第1张图片
执行结果:在我们函数内它又会执行本身一直到number等于1,才会停止,相当于4+3+2+1
javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第2张图片

例(2):阶乘

javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第3张图片
执行结果:相当于432*1
javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第4张图片

注意: 递归函数常用来解决一些循环重复的问题,但是一定要设置结束条件,否则就会导致死循环。

         注意:光理论是不够的 ,在此送大家2020最新企业级 Vue3.0/Js/ES6/TS/React/node等实战视频教程,点击此处免费获取,小白勿进哦

二、闭包

       含义: 闭包是有权访问其他函数作用域中变量的函数。(但是前面学到的作用域链说到内部的才有权访问外部的,而外部的无法访问内部的,那么我理解的闭包肯定就是在其他函数内部的函数 )

我们简单举个例子:fn函数内还有一个函数
javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第5张图片
执行结果:很显然这里内部的函数 就使用了外部函数的变量b
javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包_第6张图片

虽然闭包在我们开发中还是扮演着一个重要的角色,但是它还是有着它本身的一些优缺点。

优点: 内部函数有权访问外部函数的局部变量。
缺点: 闭包会导致变量 不会被系统的垃圾回收机制所处理,所以这些变量和参数会一直被保存着,很大程度上消耗着内存,如果使用不当可能会造成内存泄露的情况。

即这些可以总结为闭包的三大特性:

函数嵌套函数
函数的内部可以访问外部的参数和和变量
变量和参数不会被自动回收

**
       Will be kind to everyone’s enthusiasm, not to please anyone’s cold.
                     -------------------------------------------不亏待每一份热情, 也不讨好任何冷漠

你可能感兴趣的:(javascript从入门到跑路-----小文的js学习笔记(20)------- js中的递归函数 以及 闭包)