javascript作用域

作用域是由下至上的

最下方是全局作用域

向上是函数作用域、块作用域

作用域是用来保管所有变量(非字符)的仓库管理员

当引擎遇到任何一个变量时都将询问当前作用域,是否存在该变量,如果
不存在,将向下寻找知道找到/找不到。

小细节:
   for循环中   for(var i=1;i<4;i++) 中的i  不属于for循环作用域,而是属于上一个作用域(函数或者全局)中,使用var 会污染作用域,于是应该使用let 使其工作于当前作用域。

upupup!!!
    函数声明时对编译器来说是分为几个段落的:
           如var i=1;
        其实是分成:
            var i;
            i=1;
        在JavaScript中所有的声明都将自动浮动到最顶代码行。
        即便是:
            console.log(i);
             var i = 1;
        也将变成:
            var i ;
            console.log(i);
            i=1;

你可能感兴趣的:(javascript作用域)