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

varx=1;
if(functionf(){}){
x+=typeoff;
}
x;
返回值为"1undefined"
它们应该是在同一作用域,为什么type语句调用不到f函数?
手掌心
浏览 403回答 2
2回答

慕的地6264312

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

慕村225694

函数表达式的函数名作用域是闭包内。除了IE8貌似有bug。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript