我目前正在开发一个网站并计划使用JavaScript。
function func() {
if (false) {
var a = 'goodbye';
}
console.log(a);
}
以上示例显示了范围,我想知道如何防止这种情况未定义以及为什么会出现这种情况。
我研究过mdn,w3学校和varius网站,但它们要么具体要么过于笼统。
对于那些经常使用JavaScript而不是团队成员拥有此资源的人来说会很棒 - 而且我打算利用这些知识使用前端语言(JavaScript,html,CSS等)制作网页
如果合适,请随意添加更多标签!
答案 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块未被执行。 因此,当您记录
时,您将得到未定义