经过预解析后
function fun(){
alert('B');}
var fun;
fun()
这个fun(),fun的值为什么不是undefined,var fun离fun()最近了
登陆购买课程后可参与讨论,去登陆吧
同学你好,问题解答如下:
1、 当变量名和函数名同名时,预解析时优先提升函数,所以fun此时表示一个函数。
2、代码在真正执行阶段,会跳过函数声明和变量声明语句,var fun; 这句代码只是声明变量,并没有赋值,那么,在代码执行阶段会被跳过,所以fun最终还是一个函数,而不是undefined
3、可以给fun变量手动赋值为undefined,在代码执行阶段才会执行该赋值语句,那么,此时的fun就不再是函数了,而是undefined,再添加()作为函数调用就会报错了,示例:
祝学习愉快~
当变量名与函数名相同时都为a,因为函数声明优先级高,所以a指的是函数,对吗?
是的,在预解析阶段,变量名和函数名都为a时,优先提升函数声明,所以此时a指的是函数,祝学习愉快~
只把函数声明提了,不提变量声明了?是这样吗?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
入行前端,是明智的选择!市场需求大,就业前景好,入行门槛低,小白易上手 全新升级:技术更新,Vue3.0/TypeScript/React17.x; 技术更全面,从0基础到全栈开发再到大型项目构建
157 1
75 1
31 2
200 5
155 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星