你说的没错网上说的都是模糊不清的也有代码来测试来解答 但我觉得都有点强行解释的感觉 其实为什么会这样 阮一峰老师那里也说过 因为es6有块级作用域的原因 按理函数声明也因该只生效于块级作用域 但是这么做的原因 不能兼容以前老代码的原因(以前是没没块级作用域的) 所以浏览器(支持es6的) 并没遵照这规则 所以它有自己行为(不过用严格模式可以消除这怪异行为 让其函数声明只在块级生效) 居然是浏览器自己怎么样行为(这个我也不是很清楚 网上说的也很模糊 感觉也不是所有es6浏览器统一的 这个就是厂商问题了) 所以你以后写代码的时候还是避免把函数声明写块级里 如果必要写还是用函数表达式为好