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

  • 时间:2018-07-01 23:33 作者:程序员之言 来源:程序员之言 阅读:175
  • 扫一扫,手机访问
摘要:答案这段代码的执行结果是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-07-16 22:16)
【网页前端|HTML】最全面的前端开发指南(2019-07-15 12:57)
【系统环境|数据库】零基础如何快速学好大数据?(2019-06-29 12:27)
【系统环境|Linux】零基础如何学好大数据?必备需要学习知识(2019-06-18 11:54)
【系统环境|】Hadoop环境中管理大数据存储八大技巧(2019-06-15 11:01)
【系统环境|服务器应用】现在国内IT行业是不是程序员过多了?(2019-06-11 06:34)
【系统环境|服务器应用】新贵 Flutter(2) 自己设置 Widget(2019-06-11 06:34)
【系统环境|服务器应用】Android完整知识体系路线(菜鸟-资深-大牛必进之路)(2019-06-11 06:34)
【系统环境|服务器应用】Java程序员小伙经历三个月备战,终获阿里offer(2019-06-11 06:34)
【系统环境|服务器应用】每日一问:谈谈对 MeasureSpec 的了解(2019-06-11 06:34)
手机二维码手机访问领取大礼包
返回顶部