首页 > Web开发 > 详细

JS基础语法---预解析

时间:2019-11-29 14:24:57      阅读:52      评论:0      收藏:0      [点我收藏+]
预解析:就是在解析代码之前
 

预解析做什么事?

  • 把变量的声明提前了----提前到当前所在的作用域的最上面
  • 函数的声明也会被提前---提前到当前所在的作用域的最上面
 
举例:
    function f1() {
      console.log(num);
      var num = 10;
    }
    f1(); //此时运行结果是undefined

 

此时运行结果是undefined,因为预解析,变量声明被提前了,实际按下面的方式解析的:

    function f1() {
      var num
      console.log(num);
      num = 10;
    }
    f1(); //此时运行结果是undefined

 

举例2:

    //函数调用的时候,把会函数的声明提升到作用域的上面
    f1();//调用
    var num = 20;//这个变量的声明会提升到变量使用之前
    function f1() {
      console.log(num);
      //var num=10;
    }

 

预解析分段和局部作用域的问题

  •     预解析中,变量的提升,只会在当前的作用域中提升,提前到当前的作用域的最上面
  •     函数中的变量只会提前到函数的作用域中的最前面,不会出去
    function f1() {

      console.log(num);//undefined
      var num = 10;
    }
    f1();
    console.log(num);//报错

 

  •     预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)
  <script>

    function f1() {
      console.log("哈哈");
    }

  </script>
  <script>
    f1();
    function f1() {
      console.log("嘎嘎");
    }
  </script>

 

 

 

JS基础语法---预解析

原文:https://www.cnblogs.com/jane-panyiyun/p/11957297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!