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

**
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.
                     -------------------------------------------不亏待每一份热情, 也不讨好任何冷漠

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值