• 变量名和函数名声明提升


    老大了看了一点博客,给前端的同志们出了个题:

    /****************************************/

    alert(a);

    a();

    var a=1;

    function a(){

      alert(2);

    }

    alert(a);

    a=3;

    a();

    /****************************************/

    根据声明提前的原则,代码解析时是这个样子的,(函数名和变量名相同的时候互相覆盖,后者干掉前者)

    /****************************************/

    var a;

    function a(){alert(2)}  //此时a是个函数

    alert(a);  //弹出函数a本体

    a();        //执行函数a   2

    a=1;         //此时a是一个变量

    alert(a);    //   1

    a=3;           //此时a是一个变量

    a();          //error   不是一个函数

    /****************************************/

     var b= 'global';

    function f(){

      console.log(b);

      var b= 'local';

      console.log(b);

    }

    有作用域的影响(函数内使用变量,优先使用函数体内存在的,函数体内不存在,才会跳出本作用域寻找),也有变量提升的影响

    解析:

     var b= 'global';

    function f(){

     var b;

      console.log(b);

      b= 'local';

      console.log(b);

    }

    f();

    结果就是:undefined      local

  • 相关阅读:
    RegExp
    svn操作
    前端跨域请求
    UML
    excel 常用设置
    python中 cmp
    python global nonlocal
    python常见异常提示
    table边框和td的width失效
    display_css
  • 原文地址:https://www.cnblogs.com/gaoxt/p/7550577.html
Copyright © 2020-2023  润新知