函数声明提升

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

      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

  

posted @ 2023-04-16 16:29  黄燃  阅读(16)  评论(0)    收藏  举报