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

关于自执行函数定义函数声明结果输出为undefined的问题

关于自执行函数定义函数声明结果输出为undefined的问题

慕虎7371278 2018-07-18 13:54:49
今天看到个题目,很疑惑,一直没想到答案,题目是这样的:<script>         function g() {            console.log(123)            return true         }         ;(function(){            console.log(g)    //undefined             console.log(g())    //g is not function             if(g) {                function g() {                    console.log(456)                    return false                 }             }         })()        console.log(g())    </script>在自执行函数中,使用函数声明定义function也还是会变量提升的,既然提升了为什么还是undefind或者说为什么是g is not function?请大神们告知一二,谢谢
查看完整描述

3 回答

?
SMILET

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

函数在新版浏览器是块级作用域的 有些老得不是

查看完整回答
反对 回复 2018-07-18
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

你可以用旧版ie执行这段代码,看看结果

查看完整回答
反对 回复 2018-07-18
?
慕尼黑的夜晚无繁华

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

建议看下这个,里面详细有讲这个问题,与浏览器实现与历史遗留兼容有关

查看完整回答
反对 回复 2018-07-18
  • 3 回答
  • 0 关注
  • 432 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号