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

时间:2018-01-07 19:21:50

标签: javascript

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

function func() {
    if (false) {
        var a = 'goodbye';
    }
    console.log(a);
}

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

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

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

online-editor

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

2 个答案:

答案 0 :(得分:6)

undefined中的条件为false时,您看到if的原因是var 已悬挂到函数顶部和变量将undefined作为默认值。

提升后,您的代码是:

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

由于条件为false,a的默认值永远不会更改。

更多关于var悬挂在我贫血的小博客上的信息:Poor misunderstood var

答案 1 :(得分:0)

您对if语句的工作原理感到困惑,

if(Condition comes out to true)
{
 This will work
}

其他方面它不起作用,默认情况下您已将Condition输入为false,因此不会执行if块。 正如你已经定义了" a"在if块内,变量" a"永远不会被定义为if块未被执行。 因此,当您记录

时,您将得到未定义