js 预解析

 
预解析:就是在解析代码之前
预解析做什么事?
把变量的声明提前了----提前到当前所在的作用域的最上面
函数的声明也会被提前---提前到当前所在的作用域的最上面
//函数调用的时候,把会函数的声明提升到作用域的上面
    f1();//调用
    var num = 20;//这个变量的声明会提升到变量使用之前
    function f1() {
      console.log(num);
      //var num=10;  
    }

  

//预解析中,变量的提升,只会在当前的作用域中提升,提前到当前的作用域的最上面
//函数中的变量只会提前到函数的作用域中的最前面,不会出去
//预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)
<script>
    function f1() {
      console.log("哈哈");
    }
  </script>
  <script>
    f1(); 
    function f1() {
      console.log("嘎嘎");
    }
  </script>

  

 
 
 
原文地址:https://www.cnblogs.com/wanguofeng/p/10500138.html