zoukankan      html  css  js  c++  java
  • js中变量的作用域、变量提升、链式作用域结构

    一:作用域

    在ES6之前,javascript没有块级作用域(一对{}即为一个块级作用域),只有全局作用域和函数作用域(局部),因此,对应的有全局变量和局部变量。在函数内部可以访问到全局变量,但在函数外部,访问不到局部变量;

    (思考:

       function test(){

          console.log(i);  //?
          console.log(num);//?

          for(var i=0;i<1;i++){

             var num=i;

          }

       }

    二:链式作用域结构

    在js中,变量查找遵循就近原则,如果同级没有该变量,则就一层一层向父级层查找,直到找到为止,所以,父级的变量对于子级都是可见的;

    三:变量提升

    在js解析时,在函数内部定义的变量都会提升到该函数的最开始的地方进行申明,在执行到时再进行赋值操作。

     console.log(global); // undefined

     var global = 'global'
     console.log(global); // global
     
     
        console.log(a);   // error   
     function fn () {
      console.log(a); // undefined
      var a = 'aaa'
      console.log(a); // aaa
     }
     fn();
  • 相关阅读:
    C++第三章习题
    C++第五章习题
    C++第八章习题
    C++第四章习题
    第八章 图形编程 笔记
    第五章 Windows程序设计 笔记
    [转]c++ 结构体和类的区别
    C++第二章习题
    C++第六章习题
    Ubuntu10.04中设置和修改root密码
  • 原文地址:https://www.cnblogs.com/lichunyan/p/7852262.html
Copyright © 2011-2022 走看看