老师 可不可以 这样理解

来源:4-13 JS解析机制详解

木鱼588

2019-12-25 16:45:54

        var a = 1;

        function fn(){

            console.log(a); 

            var a = 2;

        }

        fn();

        console.log(a); 

fn 函数内部 有一个 var  a = 2;   因为 有 var  声明  相当于 在局部作用域 中 栈内存 中 开了一个房间 跟全局变量  var a = 1 没有关系 

当  没有 var 时  也就是  a = 2 不会在栈内存中开房间  而是由于作用域链的关系 他会去向上找  房间名为a 也就是 var  a 

所以 全局变量 var  a = 1 就会被覆盖 为  var a = 2   

写回答

1回答

好帮手慕言

2019-12-25

同学你好,是可以这样理解的。如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 14456 问题

查看课程