JavaScript-作用域和作用域链

1.1局部作用域(函数作用域):

声明在函数内部的变量【函数内部的作用域】

1.2全局作用域:

在代码中任何地方都能访问到的对象拥有全局作用域【整个script(函数外的作用域)】

1.3块作用域:

大括号里面的代码块

  • 块级变量类似于局部变量,for(){},if(){}都是块作用域
  • js包括:ECMAScript,BOM,DOM

★★★★★块级作用域的特点

  1. 声明变量不会提升到代码块顶部
  function fn(condition) {
      if (condition) {
        let num = 1;
        console.log(num);
      } else {
        num++;
        console.log(num);
      }
    }
    fn(0);//报错
    fn(1);//1
  1. 禁止重复声明
//**********会出错**************
 var num = 1;
 let num = 2;
//**********不会出错**************
 var num = 1;
    if (haha) {
      let num = 2;
    }

局部变量,外边不能用,函数自己不会执行,需要调用,当我们执行函数时, 会在内存中开启新的作用域空间,称之为新的空间,或者局部作用域,函数运行的过程中,内存里有这个变量,但是当这个函数执行完,就会关闭新的作用域空间,关空间的同时把变量销毁,

作用域链:变量查找机制(从内向外)

function fn(){
   let n=3//局部
        function f1(){ 
                    let n=123}
   f2();
}
fn();
console.log(num)//自己有用自己的,自己没有往上找
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值