最近在巩固前端基础,看到预解析和代码执行部分,里面讲到提到了声明
和提高
,由于与咱们的平常很密切,根据我的所得,写一篇文章。前端
1. 先解释一下什么叫预解析?浏览器
2. var关键字 函数
// 1. alert(a); // undefined var a = 1; // 2. alert(b); // var b = function(){} // 3. alert(c); var c;
只要是var定义的,无论是变量仍是函数,都是先赋值undefined。若是是变量,也无论是否赋值,在预解析阶段都会被赋值为undefined。code
3. 关键字function字符串
alert(a); // 弹出的是下面的function function a(){} // 注意:函数在预解析的时候会将代码分红两部分来执行,第一部分是fn函数;第二部分是(),一个匿名函数,这时在执行过程当中会报错。若是小括号带参数,如(2),虽然不会报错,也打印出2,可是并不能把fn执行,不能当作参数传递给fn函数。