首页 > 编程语言 > 详细

Web前端开发人员要知道的之JavaScript预解析

时间:2020-11-17 17:28:23      阅读:17      评论:0      收藏:0      [点我收藏+]

预解析

JavaScript代码的执行是由浏览器中的JavaScript解析器来执行的。JavaScript解析器执行JavaScript代码的时候,分为两个过程:预解析过程和代码执行过程

预解析过程:

  1. 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值。
  2. 把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用。
  3. 先提升var,在提升function(顺序var在最上面,然后是function)

1.例子:

 1     f1();
 2   console.log(c);        //9
 3   console.log(b);      //9
 4   console.log(a);       //报错
 5   function f1() {
 6       var a = b = c = 9;
 7       console.log(a);  //9
 8       console.log(b);    //9    
 9       console.log(c);    //9
10   }

预解析后:

 1 function f1() {
 2   var a;//有var是局部变量,函数外不能访问
 3   a=9;
 4   // 提升后有没有var,是隐式全局变量,所以函数外可以访问
 5   b=9;
 6   c=9;
 7   console.log(a);//9
 8   console.log(b);//9
 9   console.log(c);//9
10 }
11 f1();
12 console.log(c);//  9
13 console.log(b);// 9
14 console.log(a);//报错

2.例子:

1   f1();   //结果最终是报错
2    var f1=function () {
3       console.log(a);
4       var a=10;
5    };

 

预解析后:

1  //分析
2    var f1; //预解析,所以f1只进行了声明,f1里面没有内容,
3    f1();   //报错
4    f1=function () {
5        console.log(a);
6        var a=10;
7    };

 

Web前端开发人员要知道的之JavaScript预解析

原文:https://www.cnblogs.com/anji/p/13995049.html

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