函数声明提升

发布时间 2023-04-16 16:31:57作者: 黄燃

在条件控制语句中的函数声明解释器在编译阶段无法识别并提升,执行阶段才会被声明存在

      foo();  // TypeError: foo is not a function
      var a = false;
      if(a) {
        function foo() { console.log("a"); }
      } else {
        function foo() { console.log("b"); }
      }
      console.log(foo);  // undefined
      var a = false;
      if(a) {
        function foo() { console.log("a"); }
      } else {
        function foo() { console.log("b"); }
      }
      foo();  // b