点击上方“程序员黑叔”,选择“置顶或者星标”
你的关注意义重大!
文/黑叔
阅读本文需要 2分钟
前言
最近,群友问了这么一道题,黑叔第一眼看上去很熟悉的样子,这不就是6年前的面试热点题吗?
一、忆往昔
那年,ES6还没有腾空出世,我们还是仗着jq走天下的切图侠,会一点es6或vue或react,你就是群众眼里的大佬。
近些年,随着前端工程化,前端技术爆炸式增长,曾经的那些变量声明提升题似乎被历史更替,但又会时不时的出现在群众的视野。
二、真题解析
今天就来讲一讲这道题:
不少网友会根据自己强大的理论之变量提升得出答案:分别输出21和21,当把代码在谷歌浏览器运行时,心态爆炸,竟然输出的是21和1!
其实是在当代最新浏览器机制中,if判题里的(块级作用域)遇到function定义的变量,它里面的代码中出现的变量重新赋值时,只对当前块级作用域起作用,对外层上下文没有影响。更多详细解析
三、一道非技术面试题
如果有答案,欢迎留言噢!
亲,点这涨工资