Javascript起吊行为问题

时间:2019-10-14 12:49:56

标签: javascript hoisting

所以我试图在chrome中运行这两个函数:

function let_test1() {
    debugger;
    let something = true;
    return something;
}

function let_test2() {
    debugger;
    console.log(something);
    let something = true;
    return something;
}

如果在let_test1中尝试在断点处评估something,则得到undefined

如果我在let_test2中尝试此操作,则会收到ReferenceError。

为什么会发生这种情况?

澄清

不确定这是否与TDZ答案直接相关,因为这与第一个解决“未定义”而不是“参考错误”的示例有关,问题是由什么引起的。我认为TDZ仅解决“参考错误”。

应该如此,为什么在第一个示例中将其解析为“未定义”?按照我目前的理解,它应该抛出ReferenceError。

0 个答案:

没有答案