2-4选择题 为什么弹出undefined , 外面的a=111不是全局的吗?

2-4选择题 为什么弹出undefined , 外面的a=111不是全局的吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
妮可妮可妮_ 2018-06-04 13:45:44

在函数内部使用var声明的变量是局部变量,在变量声明前,获取变量值为未定义。在函数内部定义的函数叫做闭包,他可以访问到外层函数中的局部变量。

  • 预编译的时候,变量都是undefined的,但是逐行解读代码的时候,全局变量a=111,当执行函数代码alert(a);的时候,不会按着作用域链往外找,从而弹出全局变量的值111吗?
    2018-10-09 19:02:58
  • 因为调用test函数的时候,也可以当做预解析一遍test函数中的内容,里面是有a变量声明的,并且赋值为undefined,然后再从上到下执行代码,弹出的a就是undefined。
    2018-10-09 19:16:41
  • 意思就是:虽然alert(a);在var a=11;这句代码前面,但它们在同级作用域里面,所以,alert(a);可以向下找a,只要是在同级作用域里面的都行?
    2018-10-10 10:09:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师