经典面试题(2):下面的代码将输出什么到控制台?
紧接着昨天的面试题(1),我们今天继续学习一道经典的面试题。
这道题一般会以笔试题的形式出现,题目如下,看代码:
(function(){ var a = b = 3;
})();
console.log(typeof a == 'undefined');console.log(typeof b == 'undefined');
问:下面的代码将输出什么到控制台,为什么?
这个时候,部分开发者就会认为,变量a和b都是声明定义在匿名函数内部的,属于函数内的局部变量,如果要在函数外部进行打印调用,a和b则为undefined。所以最后两行代码打印的结果都是true。
然而结果并非如此,之所以这么理解的原因是,他们把
var a = b = 3;
这句代码错误地理解为等同于:
var b = 3;var a = b;
而事实上,它等同于:
b = 3;var a = b;
区别在哪里相信你也看出来来,这个时候的变量b声明是不加关键字var的,也就是说变量b是全局变量(隐式全局变量)。
所以最后我们得到的结果分别是:true和false。
刁钻一点的面试官可能会追问:在严格模式下(使用 use strict),又会是什么结果?
这里就要注意一点了,在严格模式下我们运行后得到的结果是:
报错:b is not undefined
这也正是因为严格模式的这个特点,可以避免很多不必要的bug(全局变量污染)。
这道题的关键点在于理解javascript变量定义的特殊情况。希望大家紧记这一点,明天继续下一道经典面试题。
热门文章
原创教程
原创教程:《ECMAScript 6 教程》
附加习题:《ECMAScript 6 教程》测试题
原创教程:《Vue2.0基础教程》
原创教程:《Vue2.0进阶教程》
附加习题:《Vue2.0基础教程》测试题
趣味职场
职场感悟:混口饭吃,谈不上喜欢
学习困惑:工作用jquery,原生js知道就够
职场焦虑:程序员回三四线城市能干啥?
感到迷茫:我很努力,但依然很迷茫
薪资待遇:那么点工资,能招到人吗?
培训出身:我是一个培训出身的程序员
培训费用:花1.8万参加前端培训,值吗?
培训简历:简历包装成1-2年经验,咋办?
搞笑黑话:互联网公司黑话,搞笑到爆
职业自由:程序员职业自由的6个阶段
职场形象:在别人眼里,程序员是这样的
合作推广分割线
经典面试题(2):下面的代码将输出什么到控制台?相关推荐
- 经典面试题(40):以下代码将输出的结果是什么?
web前端教程 用大白话,来讲编程 最近几天工作任务比较忙,没抽时间来给大家推送习题,今天续上. 我们先来回顾上一题<经典面试题(39)>.看投票结果,正确的答案是选项:C,绝大部分同学选 ...
- 经典面试题(26):以下代码将输出的结果是什么?
我们先来回顾上一题<经典面试题(25)>.看投票结果,答案B和答案D选的人数旗鼓相当,到底哪个才是正确的答案呢? 正确的答案是选项:D ["1",empty x 2]. ...
- 经典面试题(21):以下代码将输出的结果是什么?
周末外出了两天,没有持续给大家带来新的题目,久等了! 今天我们先来回顾一下上周五的题目<经典面试题(20)>.看投票结果,大部分小伙伴都选错了! 正确的答案是选项:C.调用在该作用域未声明 ...
- 经典面试题(20):以下代码将输出的结果是什么?
昨天<经典面试题(19)>的答案我自己没有留言,因为你们一个个解析得实在太好,感觉都没我啥事了,同样,你们优秀的答案解析已经被置顶啦. 我们回顾一下,看看几个优秀的答案分析: 当然,还有点 ...
- 经典面试题(19):以下代码将输出的结果是什么?
昨天<经典面试题(18)>的结果已经公布,小伙伴都解析得十分清晰到位,已经被置顶为标准答案. 答案被点赞做多的属于这位小伙伴: 自己搞懂,和能把已经掌握的知识逻辑清晰地表达出来,教会别人, ...
- 经典面试题(18):以下代码将输出的结果是什么?
昨天<经典面试题(17)>大家都很踊跃留言,很多小伙伴解析得十分清晰到位,已经被置顶为标准答案.看来个个都是大佬. 由于微信只允许置顶5个留言,所以只挑选了解析得更清晰易懂的几位小伙伴的答 ...
- 经典面试题(17):以下代码将输出的结果是什么?
昨天<经典面试题(16)>大家都很踊跃留言,尝试去解析自己的答案,有几位小伙伴解析得十分清晰到位,已经被置顶为标准答案. 不管答对还是答错,尝试动脑去思考,相信总会有所收获!如果看了标准答 ...
- 经典面试题(16):以下代码将输出的结果是什么?
继续我们的经典面试题,前两篇在码字上注意力有些许不集中,出现了错误,再次对大家表示抱歉. 而今天这道题主要考察的是JavaScript中生僻冷门用法和容易忽视混淆的概念,据说有不少人答错了. 这段代码 ...
- 经典面试题(53):以下代码将输出的结果是什么?
web前端教程 用大白话,来讲编程 我们先来回顾上一题<经典面试题(52)>.看投票结果,很多同学在A和B之间犹豫不决,正确的答案是:B! 有疑惑的同学,可以看看下面@相逢在雨季 和 @弓 ...
- 经典面试题(52):以下代码将输出的结果是什么?
web前端教程 用大白话,来讲编程 我们先来回顾上一题<经典面试题(51)>.看投票结果,正确的答案是选项:C,绝大部分同学选对了! 有疑惑的同学,可以看看下面@方呵呵 和 @弓备 给我们 ...
最新文章
- 写了一个PPT,用于公司内部培训
- WinCvs里登录出现C:/cvs: no such repository解决方案
- layui使用方法——图标
- 华为校园招聘Java机试题
- JDBC(二)驱动程序类型发展历程
- SDOI2005 区间
- java基础----Java中枚举的使用(一)
- mysql对测试如何_我如何对MySQL进行基准测试?
- java反射源码_java反射技术详解附源码
- 搜狐-新闻页 粗略整理-自我学习
- QTextEdit显示中文乱码解决,中文GB2312转Unicode,QString、QByteArray 转换,16进制显示,toUtf8与toLocal8Bit区别
- 软件工程师的衰落与程序技术员的兴起
- 第1节 kafka消息队列:5、javaAPI操作
- 程序中使用log4J打印信息的两种方式
- 无法远程连接 mysql(Ubuntu)
- url编码 java_java中的url 编码与解码
- 软考之项目网络图(活动图)
- 来自2022年的Python 网络爬虫补充知识,HTML+JSON+爬虫场景
- java微信头像失效问题,将微信头像上传至七牛云
- Tesla M40 使用分享
热门文章
- 最新遇到的面试题20210319
- 2020快手食品行业数据价值报告
- 2020快手K12教育培训行业数据价值报告
- 产品经理需要向上思考
- 作者:周涛(1979-),男,博士,启明星辰教授级高级工程师、大数据实验室副主任。...
- 作者:牛海波,男,中国国防科技信息中心工程师。
- 【Java】Maven工程目录下ImageIcon读图片失败爆空指针的解决方案
- 洛谷P5709、P5710、P5711、P5712题题解(Java语言描述)
- 【面向对象】面向对象程序设计测试题7-对象之间的has-a/many关系测试题
- Scrapy 爬虫框架五—— 常见的反爬虫技术