经典面试题(11):关于变量提升,以下代码将输出什么?

  • 时间:2018-07-01 23:33 作者:程序员之言 来源:程序员之言 阅读:119
  • 扫一扫,手机访问
摘要:答案这段代码的执行结果是undefined 和2。导致这个结果的起因是:变量和函数都被提升到了函数体的顶部。什么叫提升?是这样子的,Js代码的编译阶段会找到所有的公告,包括变量公告var a和函数公告function foo(){}在内的所有公告都会在代码被执行前的编译阶段首先被解决,就如同变量公告
经典面试题(11):关于变量提升,以下代码将输出什么?

答案

这段代码的执行结果是undefined 和2。

导致这个结果的起因是:变量和函数都被提升到了函数体的顶部。

经典面试题(11):关于变量提升,以下代码将输出什么?

什么叫提升?是这样子的,Js代码的编译阶段会找到所有的公告,包括变量公告var a和函数公告function foo(){}在内的所有公告都会在代码被执行前的编译阶段首先被解决,就如同变量公告和函数公告从他们代码中出现的位置被移动到执行环境的顶部,这个过程就叫做提升。

需要注意的是:只有公告操作会被提升,赋值和逻辑操作会被留在原地等待执行。

因而,当打印变量a时,因为变量提升的起因,它已经被公告了,所以这个时候去访问变量a并不会报错。但它只是被公告了,未被赋值(赋值出现在打印之后再执行),所以它的值是undefined。

经典面试题(11):关于变量提升,以下代码将输出什么?

经典面试题(11):关于变量提升,以下代码将输出什么?

  • 全部评论(0)
最新发布的资讯信息
【网页前端|JS】五年Java程序员该掌握的技术点,这些都不懂,还想拿高薪吗?(2019-04-24 22:19)
【系统环境|】2019蚂蚁金服面试总结(Java方向)(2019-04-18 16:19)
【系统环境|】notepad++ 三位数字正则替换规则(2019-04-12 23:02)
【系统环境|服务器应用】网络工程师跨交换机的Vlan配置与管理知识(2019-03-26 02:14)
【系统环境|服务器应用】最小化的定制版linux系统:CoreOS(2019-03-26 02:14)
【系统环境|服务器应用】分布式系统面试题:分布式事务处理方案?(2019-03-26 02:13)
【系统环境|服务器应用】带着网关去旅行(系列二):防止vps上ssh端口被恶意扫描(2019-03-26 02:13)
【系统环境|服务器应用】美团iOS面试总结(2019-03-26 02:13)
【系统环境|服务器应用】百度iOS面试总结(2019-03-26 02:13)
【系统环境|服务器应用】Java大佬之学习历程(三)(2019-03-26 02:13)
手机二维码手机访问领取大礼包
返回顶部