预解析

JavaScript代码是由浏览器中的JavaScript解析器来执行的,JavaScript解析器在运行JavaScript代码的时候分为两步:预解析和代码执行

<script>
  //1问
  // console.log(num);


  //2问
  console.log(num); //undefined 坑1
  var num = 10;
  //相当于执行了以下代码
  // var num;
  // console.log(num);
  // num = 10;


  //3问
  fn();
  function fn() {
    console.log(11);
  }


  //4问
  fun();    //报错  坑2
  var fun = function () {
    console.log(22);
  }

  //函数表达式 调用必须写在函数表达式的下面
  //相当于执行了以下代码
  var fun;
  fun();
  fun = function () {
    console.log(22);
  }

  //1.我们js引擎运行js 分为两步: 预解析 代码执行
  //(1).预解析js引擎会把js 里面所有的var 还有function 提升到当前作用域最前面
  //(2).代码执行  按照代码书写的顺序从上往下执行
  //2.预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)
  //(1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作
  //(2) 函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数
</script>

 

posted @ 2022-04-09 13:49  奥摩前端  阅读(20)  评论(0编辑  收藏  举报