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

if false语句在javascript中是否总是返回undefined?,javascript,Javascript,我目前正在开发一个网站,并计划使用JavaScript function func() { if (false) { var a = 'goodbye'; } console.log(a); } 上面的例子显示了范围,我想知道如何防止未定义的情况出现,以及为什么会出现这种情况 我研究过mdn、w3学校和varius网站,但它们要么过于具体,要么过于笼统 对于那些经常使用JavaScript但不是团队领导者的人来说,这将是一个很好的资源——我计划利用这些知

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

function func() {
    if (false) {
        var a = 'goodbye';
    }
    console.log(a);
}
上面的例子显示了范围,我想知道如何防止未定义的情况出现,以及为什么会出现这种情况

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

对于那些经常使用JavaScript但不是团队领导者的人来说,这将是一个很好的资源——我计划利用这些知识使用前端语言(JavaScript、html、CSS等)制作一个网页


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

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

if(Condition comes out to true)
{
 This will work
}
另一方面,它将不起作用,您已输入默认为false的条件,因此不会执行if块。 正如您在if块中定义的“a”,变量“a”永远不会被定义为if块未执行。
因此,当您记录一个

时,您会对if语句的工作方式感到困惑

if(Condition comes out to true)
{
 This will work
}
另一方面,它将不起作用,您已输入默认为false的条件,因此不会执行if块。 正如您在if块中定义的“a”,变量“a”永远不会被定义为if块未执行。
因此,当您记录一个

时,您会看到未定义的,当该if中的条件为false时,您会看到
未定义的
,原因是
var
被提升到函数的顶部,变量将
未定义的
作为其默认值

吊装后,您的代码如下:

function func() {
    var a; // Defaults to `undefined`
    if (false) {
        a = 'goodbye';
    }
    console.log(a);
}
由于条件为false,
a
的默认值永远不会更改


关于
var
提升的更多信息,请访问我贫血的小博客:

if
中的条件为false时,您看到
未定义的
的原因是
var
被提升到函数顶部,变量将
未定义的
作为其默认值

吊装后,您的代码如下:

function func() {
    var a; // Defaults to `undefined`
    if (false) {
        a = 'goodbye';
    }
    console.log(a);
}
由于条件为false,
a
的默认值永远不会更改


关于
var
提升的更多信息,请访问我贫血的小博客:

添加一个返回语句?您的函数中不会返回任何内容,即使您从该函数中执行
返回一个
,您最终将得到
未定义的
。这是因为你在一个永远不会执行的块中声明了
a
。你没有设置,
console.log
ing
a
之后就像
console.log
ing
undefined
不是真的,没有多少东西可以切换。。。
if(false)
没有多大意义,返回语句?函数中没有返回任何内容,即使从该函数中执行
返回一个
,最终将得到
未定义的
。这是因为你在一个永远不会执行的块中声明了
a
。你没有设置,
console.log
ing
a
之后就像
console.log
ing
undefined
不是真的,没有多少东西可以切换。。。一个
if(false)
不会产生太大的影响sense@Li357:嗯,我们很快就可以……很快。:-)@Li357:嗯,我们很快就能……很快。:-)