zoukankan      html  css  js  c++  java
  • 进阶学习js中的执行上下文

      在js中的执行上下文,菜鸟入门基础 这篇文章中我们简单的讲解了js中的上下文,今天我们就更进一步的讲解js中的执行上下文。

    1、当遇到变量名和函数名相同的问题。

    var a = 10;
    function a(){
        console.log(1);
    }
    a(); //报错

      如果你觉得函数a会覆盖变量a那你肯定是js的新朋友,为什么这里会报错呢?我记得我在基础的执行上下文文章中说过变量声明提前的概念,对这里就是因为这个原因,但是在上面一篇文章中还有一个问题我没有去讲。

      那就是函数的声明比变量的声明顺序更早,上面那段代码相当于下面这段代码:

    function a(){
        console.log(1);
    }
    var a = undefined;
    a = 10;
    a();

    函数a被变量a覆盖了。

      2.当函数在另外一个函数中调用的时候

    var a = 1;
    function fn1(){
        console.log(a);
    }
    function fn2(){
        fn1();
    }
    a = 2;
    fn2(); //2

      这里没有输出1是因为fn1嵌套在fn2中,所以函数fn2没有执行的话,fn1自然也没有被执行,又因为fn2是在a赋值为2以后才执行的所以fn1打印的就是2,此时a的值就是2。

    到这里,关于js的执行上下文就可以告一段落了,当然如果后期遇到其他的问题,会继续更新到这一文章中,之所以这一章讲解的比较简单是因为有上面一节的基础。

  • 相关阅读:
    es删除索引
    真人快打11技能键位
    点到线段的距离
    行列快乐值
    按钮变色
    取数求和
    机器分配
    田忌赛马 问题
    雷达
    最小字典序
  • 原文地址:https://www.cnblogs.com/pssp/p/5218716.html
Copyright © 2011-2022 走看看