if false语句总是在javascript中返回undefined吗?

Jac*_*l21 0 javascript

我目前正在开发一个网站并计划使用JavaScript.

function func() {
    if (false) {
        var a = 'goodbye';
    }
    console.log(a);
}
Run Code Online (Sandbox Code Playgroud)

上面的例子显示了范围,我想知道如何防止这种情况出现未定义以及为什么会出现这种情况.

我研究过mdn,w3学校和varius网站,但它们要么具体要么过于笼统.

对于那些经常使用JavaScript而不是团队成员拥有此资源的人来说会很棒 - 而且我打算利用这些知识使用前端语言(JavaScript,html,CSS等)制作网页

在线编辑器

如果合适,请随意添加更多标签!

T.J*_*der 6

您看到undefined该条件if为false的原因是,它var提升到函数的顶部,变量undefined作为默认值.

吊装后,您的代码是这样的:

function func() {
    var a; // Defaults to `undefined`
    if (false) {
        a = 'goodbye';
    }
    console.log(a);
}
Run Code Online (Sandbox Code Playgroud)

由于条件为false,a因此永远不会更改默认值.

更多关于var悬挂在我贫血的小博客上:穷人误解了var