简单的理解变量声明

本文详细探讨了JavaScript中的变量作用域、变量提升和函数提升的概念,通过代码示例解析了不同作用域下变量的声明和赋值行为。重点讲解了匿名函数自执行时如何影响变量的访问,并通过练习代码加深理解。同时,提到了函数声明提升的优先级高于变量提升的规则。

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


  <script>
    //代码段1--------------------------
    var le = '变量值';  //声明变量并赋值
    console.log(le); // 变量值
    //代码段2--------------------------
    var le = '变量值';  //声明变量并赋值
    (function () {
      console.log(le); //变量值
    })();
    //代码段3----------------------------
    var le = '变量值';   //声明变量并赋值
    (function () {
      console.log(le); // undefined 
      var le = '内部变量值';
      console.log(le); //  输出内部变量值 
      //声明变量并赋值  声明的le提升之作用域顶部 
    })();

    //⬇  等价于下面代码
    //⬇  ⬇  ⬇  ⬇  ⬇  ⬇
    //⬇  ⬇  ⬇  ⬇  ⬇  ⬇
    //⬇  ⬇  ⬇  ⬇  ⬇  ⬇
    //⬇  ⬇  ⬇  ⬇  ⬇  ⬇
    var le = '变量值';   //声明变量并赋值
    (function () {
      var le;  //局部变量和全局变量重名会覆盖全局变量  此时的le只有声明却未定义  
      console.log(le); // undefined 
      le = '内部变量值';   // 变量赋值
      console.log(le); // 对新定义的变量赋值  输出内部变量值 
    })();


    //更多
    (function () {
      console.log(le);  //error报错 未声明le
      le = '内部变量值';
    })()

      (function () {
        le = '内部变量值';
        console.log(le);//输出内部变量值,匿名函数自执行内部变量提升定义为全局变量
        //函数内部定义的方法和变量,要等到函数执行过以后,才会真正定义
      })()



    //练习代码----------------------
    var myvar = '变量值';
    (function () {
      console.log(myvar); // 变量值
      myvar = '内部变量值';
      console.log(myvar); // 内部变量值
    })();
  </script>

函数声明提升的优先级比变量提升还要高。

    console.log(b);
    console.log(b());
    var b = 1;
    function b() {
      return 2;
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值