我以为代码会变成:
然而结果是如我第一张图的注释一样,有一个f2的调用报错,这是为什么?
这种块级函数声明,在ECMAScript规范中并没有规定,所以在不同的浏览器有不同的实现,具体可以看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function#Conditionally_created_functions
嗯,我试了一下发现确实是这样。
这个是用于抓异常的系统函数,我觉得在函数内部定义的函数应该不会被声明提前吧
我把try-catch改成if,调用一样报错?