JS--变量提升与函数提升

97 阅读1分钟

1、变量提升

通过var声明的变量,在声明之前就可以访问到,值为undefined

var a = 3
funciton fn(){
    console.log(a)  //打印结果为undefined不是3.  ==>  var a; console.log(a); a = 4;
    var a = 4
}
fn()

2、函数提升

通过function声明的函数,在声明之前可以直接调用,值为定义的函数对象

fn2()  //正常执行
function fn2(){
    console.log('fn2')
}
fn3() //因为这里fn3的定义不是通过function来声明的,这里遵循的是变量的提升,
      //此时fn3值为undefined,所以fn3()不能正常执行
var fn3 = function(){
    console.log('fn3')
}