我有一段代码正在检查变量是否存在,如果不存在,则设置变量。代码是:
if (typeof myVariable == "undefined") {
console.log("Inside the if statement");
}
当变量存在时,它不会进入if语句,一切都很好。但是,当我将代码更改为:
时if (typeof myVariable == "undefined") {
var myVariable = "";
}
我遇到一个问题,if语句每次都会触发,即使已经定义了变量并且它被覆盖了。
是否有理由因改变if内部的内容而触发if语句的条件?
答案 0 :(得分:0)
您只需要了解变量的范围。在这个例子中,myVar的范围是foo方法。
function foo(myVar) {
if(typeof myVar == 'undefined') {
myVar = 'defaultValue';
}
console.log(myVar);
}
foo(); => 'defaultValue'
foo('bar'); => 'bar'
我怀疑你遇到的问题是你可能在一个范围内定义“myVariable”,然后期望继续转移到另一个范围。发生这种情况的唯一方法是“myVariable”是否在全球范围内。
答案 1 :(得分:-3)
应该是:
if (typeof myVariable == undefined) {
console.log("Inside the if statement");
}
未定义周围没有引号。