巴黎的大佬们,帮小弟解决一个函数声明提升的问题
javascript吧
全部回复
仅看楼主
level 1
维生素之祖
楼主
函数 f 的声明提升到了其作用域顶端,然后它的声明和赋值提升到了 if 语句的顶端吗?有点懵
2020年07月14日 03点07分
1
level 6
天道総司ლ
在if/else语句里,函数声明成为了函数表达式,表达式在预编译里不提前
2020年07月14日 04点07分
2
天道総司ლ
@天道総司ლ
所以,第二行的打印出来是undefined,因为找不到,到了if中这个函数声明提前也就能找到,if是没有的作用域的
2020年07月14日 04点07分
维生素之祖
为什么到了if中就能找到值了呢?值在if中有一个提升吗?
2020年07月14日 04点07分
天道総司ლ
@维生素之祖
八号风球♬:回复 维生素之祖 :刚刚发了不知道你看不看得到,我没看到但是显示发送成功。 你这样理解,首先if中的函数f会去声明一个全局的变量f=undefined,在执行到if时,函数f声明这段代码,函数声明就提升了。会去替换原来的全局的f
2020年07月14日 05点07分
维生素之祖
@天道総司ლ
好的,谢谢大佬
2020年07月14日 06点07分
level 11
夜深不知梦
百度关键字 块级作用域
2020年07月14日 05点07分
3
1