相信大家都知道 变量提升 , 函数提升 ,可重名的时候又是如何处理?
试问一下2个场景的输出值分别多多少?
console.log(a);
var a=100;
function a () {};
console.log(a);
console.log(a);
function a () {};
var a=100;
console.log(a);
答案是两个场景输入都是一样的.结果都为:
? a () {}
100解释:
javascript在执行代码之前,有一个预解析代码阶段。此时会先找出代码中 函数 和 变量 进行提升。 var 声明的变量 和 函数声明 可细分为三个步骤: ①创建②初始化③赋值 。例如表达式 var a=100;
有了以上前提,我们再来说一下在 预解析阶段 对于 变量 和 函数 都有哪些 提升 。
通过以上规则我们就可以解释为什么 情景一 和 情景二 输出都是一样了。因为在重名时 函数更优先。
喜欢小编的可以点个赞关注小编哦,小编每天都会给大家分享文章。
我自己是一名从事了多年的前端老程序员,小编为大家准备了新出的前端编程学习资料,免费分享给大家!