前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试题】关于变量提升的问题

【面试题】关于变量提升的问题

作者头像
用户9914333
发布2022-07-21 19:48:09
2280
发布2022-07-21 19:48:09
举报
文章被收录于专栏:bug收集bug收集

bug收集:专门解决与收集bug的网站

网址:www.bugshouji.com

01

问题

今天分享一个关于变量提升的简单问题, 请看下题,请回答三个console.log分别打印的值是多少?(请先在心里得出结论)

代码语言:javascript
复制
(function(){
        console.log(a)
        a = 5;
        console.log(window.a)
        var a =20
        console.log(a)
    })()

02

答案 & 解析

代码语言:javascript
复制
undefined
undefined
20

解析:

第一个输出:undefined , 因为函数内部var a,变量声明会提升到函数的最前面,但赋值不会提升,所以输出undefined

第二个输出:undefined, 大部分朋友应该就是这里拿不太准,那是因为大家都知道在函数内部没有用var 申明,相当于申明全局变量。

但是,注意因为函数内部有变量a 的申明,所以这里的a=5 , 其实a 已经存在了,就是局部申明提升上去的变量a , 所以,全局变量根本没有为a的变量。

所以,window.a 输出的结果也为undefined

第三个输出:20,这个简单就不明说明了

如果,大家有什么想要具体解析面试题,欢迎大家给我私信留言,我会选择比较经典的面试题进行详细解析。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档