JS函数中参数的作用域以及简单递归算法

本文探讨了JavaScript中的作用域概念,包括全局和局部作用域,以及变量的访问和赋值规则。讲解了递归函数的概念及其终止条件的重要性,并通过实例演示如何实现和解决1到5的和问题。同时揭示了函数调用与作用域链的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用域:

概念:

什么是作用域,就是一个变量可以生效的范围。

变量不是在所有地方都可以使用的,而这个变量的使用范围就是作用域。

作用域分为:全局作用域,局部作用域。

全局作用域:

全局作用域是最大的作用域,在全局作用域中定义的变量可以在任何地方使用,页面打开的时候,浏览器会自动给我们生成一个全局作用域window。这个作用域会一直存在,直到页面关闭就销毁了。

局部作用域:局部作用域就是在全局作用域下面开辟出来的一个相对小一些的作用域,在局部作用域中定义的变量只能在这个局部作用域,别的都不行。每个函数,都是一个局部作用域。

 

 有了作用域以后,变量就有了使用范围,也就是有了使用规则,变量使用规则分为两种,访问规则和赋值规则。

访问规则:

 

赋值规则: 

 作用域链:变量访问或赋值时,先在自己的作用域查找,如果没找到,再一层一层向上查找,直到最外层全局作用域。这种层层查找关系,叫作用域链。

递归函数:函数定义好后,不能自己执行,需要使用函数调用语句调用才会执行,函数调用语句一般写在函数体外面,但是如果将函数调用语句写在函数体中,也就是在一个函数内部,调用自己,这种函数称为递归函数;

 上面的递归函数一旦执行,会循环往复,没有止尽,需要给递归函数设置递归结束条件。不然就是一个没有尽头的递归函数,我们叫做死递归。

 求1至5的和 1+2+3+4+5=?

 <script>

        function fun(n){

            if(n==1){

                return 1

            }

            return fun(n-1)+n

        }

        console.log(fun(5))

    </script>

运行原理:

 解决问题:后面的结果,是由前面推导的

实现递归

1.函数自身调用自身

function fn(){

fn()

}

2.结束递归条件

function fn(){

if(结束条件){

return 想要返回的值

}

}

3.前后关系,后面结果与前面值关系

例如:1+2+3+4+5=?

f(5)=f(4)+5

        =>f(3)+4

            =>f(2)+3

                 =>f(1)+2

                     return 1

f(n)=f(n-1)+n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值