为了账号安全,请及时绑定邮箱和手机立即绑定

if语句判断条件中的非匿名函数表达式为什么无法调用?

if语句判断条件中的非匿名函数表达式为什么无法调用?

手掌心 2019-03-30 11:36:22
varx=1;if(functionf(){}){x+=typeoff;}x;返回值为"1undefined"它们应该是在同一作用域,为什么type语句调用不到f函数?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

这和if没有关系
jsvarx=functionf(){};console.log(typeofx,typeoff);
//functionundefined
这是函数表达式和函数声明语句的区别,前者带名字只会影响x.name而不会声明对应的变量,后者不仅会声明,还有提升的效果,比如
jsconsole.log(typeofg);functiong(){};
//function
                            
查看完整回答
反对 回复 2019-03-30
?
慕村225694

TA贡献1880条经验 获得超4个赞

函数表达式的函数名作用域是闭包内。除了IE8貌似有bug。
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信