首页 > 技术文章 > Javascript 函数声明先提升还是变量先提升

liveoutfun 2018-09-22 08:25 原文

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

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

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

 

测试一下

function test(){
  alert(4);
}

var test;

console.log(test);

//输出了 test这个函数体

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

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

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

 

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

 

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

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

 

推荐阅读