首页 > 现在知道内存机制的重要性了
头像
、Moon
发布于 2021-08-07 18:11
+ 关注

现在知道内存机制的重要性了

关于js全局变量与局部变量赋值与销毁问题;
    最近学习的时候遇见了一个问题:
      
        var a,b;
        function fun(){
             var a= b = 3;
         }
         fun();
        console.log(a);
        console.log(b);

        这里输出为undefined和3;
        为什么a没有值,而b却有值呢?
        首先从js代码执行顺序来说,最开始的a,b都是全局变量,没有赋值,这时候a,b都是undefined
        往下执行,遇到函数调用的时候进入函数内部,这时候发现在局部重新定义了一个a,并且没有
        赋值,往后又发现了b,这个b没有var关键字,所以b是全局变量,并且赋值为了3;最后,当函
        数执行完之后,根据js内存机制,局部变量a被直接销毁了,而全局变量b还在产生作用;所以,
        最后执行输出语句的时候,a仍然是全局中没有赋值的a,而b经过函数执行后,被赋值为了3;
        最终输出结果为undefined和3;

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐