变量提升
变量提升就是变量在声明时,会被提到作用域的开头先定义,这就是变量提升。
console.log(a);
var a = 3;//undefined
相当于
var a;
console.log(a);
a = 3;
函数提升
函数定义有两种方式,一种是函数声明,一种是字面量定义(不存在函数提升)。
//存在函数提升
console.log(a);
function a(){
};//[Function: a]
//不存在函数提升
console.log(a);
var a = function(){
}// undefined
注意
函数提升的优先级是要高于变量提升的。