我的脚本中有这段代码

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),它将其强制为实际布尔值。

10-05 20:53