Javascript 函数声明先提升还是变量先提升

大家都知道js 分为词法阶段 和执行阶段

也知道它是因为var变量和函数声明会提升

但是你知道他们两个谁先提升的吗

测试一下

function test(){
  alert(4);
}

var test;

console.log(test);

//输出了 test这个函数体

//奥  原来 是函数提升 先于变量提升

//因为声明同名变量的时候是不会覆盖之前的声明的 只有赋值的时候才会被覆盖

//如果test提升先于函数  那么就会输出undefined

//由此你明白了吧  函数声明先于变量声明!!!

 

如果这样 测试  不管谁提升在前  都会输出test  因为提升在前 赋值在后  赋值会覆盖之前的声明!!!

接下来稍微改一下就知道谁声明在前了

猜你喜欢

转载自www.cnblogs.com/liveoutfun/p/9689359.html