作用域和作用域链

本文详细介绍了JavaScript中的变量作用域,包括全局作用域、局部作用域和块级作用域。同时,阐述了作用域链的概念,即当查找变量时,会沿着作用域链从当前作用域向上级作用域逐级搜索。最后,通过实例解释了变量访问的作用域链规则,强调了变量查找的就近原则。这对于理解JavaScript中变量的生命周期和作用范围至关重要。
摘要由CSDN通过智能技术生成

1.变量作用域 : 变量 作用的范围

2.js中有三种作用域

(1)全局作用域(Script) : 页面任何地方使用

全局变量 : 大括号外面声明

(2)局部作用域(Local) : 只能在函数内部使用

局部变量: 函数内部声明的变量(形参也是局部变量)

(3)块级作用域(Block) : 在大括号(分支+循环)里面声明的变量

3.作用域链 :

* 默认情况下,js代码处在全局作用域(顶级作用域:0级),当我们声明一个函数的时候,就会开辟一个局部作用域(1级)。 如果在局部作用域中又声明函数,就会形成新的局部作用域(2级),以此类推,形成链式结构。称之为作用域链。

4.变量访问作用域链规则 : 就近原则

            * 自己作用域有声明,就访问自己的。 自己没有就找上级作用域声明,如果有则访问,没有继续往上找。如果找到最顶级(0级),还是找不到。 就会报错  xxx is not defined

 全局作用域 0级

        let num = 10
        
        function fn(){
            //局部作用域 1级
            // let num = 20
            console.log(num)//20
            
            function fn1(){
                //2级
                // let num = 30
                console.log(num)//30
            }
            fn1()
        }

        console.log(num)//10
        fn()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值