javascript中的变量提升和函数提升
javascript中的变量提升和函数提升
使用var变量会引起提升,let和const不会
变量提升会将变量声明提升到函数top,并不会把赋值提升上来
函数提升会将整个函数提升上去
el:变量提升
var a=1;
function auto(){
alert(a);
var a=2;
}
auto()
等价于
var a=1;
function auto(){
var a;
alert(a);
var a=2;
}
auto()
输出结果是undefind
el:函数提升
var a=1;
function auto(){
alert(a);
var a=2;
function a(){}
}
auto()
等价于
var a=1;
function auto(){
var a=function a(){};
alert(a);
var a=2;
function a(){}
}
auto()
输出结果是function a(){}