说明:关于js变量的提升一直是个难点,小编做了这个面试题,错误百出,还好经过我一番努力,终于明白了其中的原理,
希望对各位小伙伴有帮助。
**********
解析:
1.关于这道题,各位先了解下同名变量和同名函数在作用域里的存储,以及浏览器的从上到下的解析过程
exp:
可以看到预解析的过程是不是有很多小伙伴觉得应该输出的 undefined ,却为什么是 输出的函数呢?那下面就看下变量的栈中是怎样存储的?
在栈中存储的时,因为只覆盖了a的值,因为值是undefined 没有覆盖地址,所以才出来地址。而下面的 a=test很好的说明值是可以覆盖地址的(其实地址本质也是一个常量)
哈哈,小编就入了这个小坑。
在回去看腾讯爸爸的面试题:
有没有点明白,希望对大家有点小帮助吧 !
最后如果有错误,希望大家留言,前端的小伙伴们一起加油!!!