蒙圈了,。

蒙圈了,。

http://img1.sycdn.imooc.com//climg/5af3b21e0001aa1e04520505.jpg

怎么不是function a(){ document.write(‘a2’)}:,a2,function a(){ document.write(‘a2’)}:

正在回答

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

2回答

你好,因为function a(){}已经被提前预解析了,所以第一次输出的时候是,function a(){ document.write('a2'); }

代码从上向下执行的时候,对a又重新赋值了数值1,现在a为变量且值为1,所以调用函数a会报错,打印a是1

祝学习愉快~

  • chenqianguan 提问者 #1
    非常感谢!
    2018-05-10 17:03:37
  • chenqianguan 提问者 #2
    当函数与变量重名时,变量不是会被覆盖吗,被覆盖了的话,赋值1不是应该无效吗
    2018-05-10 17:07:02
好帮手慕糖 2018-05-10 17:36:21

你好,这里是在预解析的时候,名称相同,函数会把变量覆盖掉,但是后面还有赋值的呀,在逐行读代码的时候,变量会再次被赋值。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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