预解析
定义:js引擎在对js代码进行执行之前,会对js代码进行预解析,在预解析阶段,会将以关键字var和function开头的语句块提前进行预处理。
预解析的几种情况:
1.函数的声明会被提升
2.函数表达式不会提升
3.变量的提升(赋值没有提升,但声明变量会提升)
比如:console.log(count);
var count=10;
解析后:var count;
console.log(count);
count=10;
4.变量和函数名相同时(函数会提升、变量不会)
5.提升并不会超出作用域的范围
函数的两种创建方式:
第一种:函数的声明:function 函数名(){ }
第二种:函数的表达式:var 函数名 =function(){ }