正在回答 回答被采纳积分+1
1回答
好帮手慕慕子
2022-06-27 17:18:22
同学你好,问题解答如下:
1、预解析阶段,代码从上到下执行,遇到var关键字,就会将声明的变量提升,所以会存在变量提升。但是当变量名和函数名同名时,优先提升函数,所以预解析后,提升到代码最前的是function关键字声明的函数,如下:
2、代码不会报错,具可以参考如下解析理解,代码按着从上到下的顺序执行:
(1)执行fun() 时,调用预解析后优先提升的函数function () { alert('B')},所以弹出结果为B。
(2)执行var fun =function () { alert('A')} 代码,将function () { alert('A')} 赋值给变量fun。
(3)代码真正执行阶段,会跳过function关键字的函数声明语句。
(4)fun() 执行时,由(2)可知此时的fun指向function () { alert('A')} ,所以弹出结果为A。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星