js中的变量提升和函数提升
1.变量声明提升:
通过var定义(声明)的变量,在定义语句之前就可以访问到,值为undefined
2.函数声明提升
通过function声明的函数,在之前就可以直接调用,值为:函数定义(对象)
3.变量提升和函数提升如何产生?
js中js引擎会优先解析var变量和function定义,在预解析完成后从上到下执行,所以在定义之前就可以访问到通过var定义的变量和function定义的函数
var a=3;
function fn(){
console.log(a);//undefined
var a=4;
}
fn();
fn2();
fn3();//不能调用,使用的是函数提升
function fn2(){
console.log('fn2');
}
var fn3 = function(){
console.log('fn3');
}
还没有评论,来说两句吧...