我的脚本中有这段代码
var therow;
var rowtitle = ['Name', 'Weight'];
for(var i=0;i<7;i++) {
therow = prompt(rowtitle[i]);
if(therow != '' || therow != null) {
//some code
} else {
//more code
}
therow = null;
}
循环工作正常,提示也工作。问题是
if(therow != '' || therow != null)
我知道这是因为我已经尝试过
if(therow != '')
和
if(therow != null)
...是独立的,并且它们的行为符合预期。
为什么当我将以上两个结合到一个if语句中却什么也不做?
上面的代码有什么问题吗?
最佳答案
因为它将永远是真的。
您已经说过if it's not a blank string OR it's not NULL
。当它为NULL时,它不是一个空字符串(因此为true)。当它是一个空字符串时,它不是NULL(所以是真的)。
您想要的是if (therow != '' && therow != null)
或更可能是if (therow)
。我还看到了if (!!therow)
,它将其强制为实际布尔值。