美文网首页
JS作用域链

JS作用域链

作者: lsj980Ya | 来源:发表于2020-12-29 15:26 被阅读0次
    全局变量和局部变量

    如果在函数内定义变量时没有使用 var 相当于在函数外声明了一个全局变量,在函数内进行赋值

    function f1() {
      num1 = 100;
      var num2 = 200;
    }
    f1()
    console.log(nu1); //num1为100
    console.log(num2);//num2 未定义
    
    函数内外有同名的变量,优先使用内部变量
    var num = 100;
    function f1() {
      var num = 200;
      console.log(num);//200
    }
    f1();
    
    函数内使用全局变量
    var num = 100;
    function f1() {
      num = 200;//这里的num就是全局变量
      console.log(num);//200
    }
    f1();
    console.log(num);//200
    

    最内层作用域在使用变量时,如果自己没有则向外层查找,如果外层没有则一直向外层查找直到找到一个变量为止,这种查找变量的值的链式方式(从内到外)称之为作用域链

    相关文章

      网友评论

          本文标题:JS作用域链

          本文链接:https://www.haomeiwen.com/subject/xvgfoktx.html