以下几行JavaScript
try {
function _free() {}
var _free = 1;
} finally { }
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
Uncaught SyntaxError: Identifier '_free' has already been declared
Run Code Online (Sandbox Code Playgroud)
但是,以下两个JavaScript代码块不会:
没有try块范围:
function _free() {}
var _free = 1;
Run Code Online (Sandbox Code Playgroud)在function范围内:
function a() {
function _free() {}
var _free = 1;
}
Run Code Online (Sandbox Code Playgroud)但为什么?
(测试环境:Chromium 61.0.3126.0)