Javascript:为什么“if(element!=''|| element!= null)”不起作用?

时间:2013-08-23 11:53:50

标签: javascript

我的脚本中有这段代码

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语句中时它什么都不做?

以上代码有问题吗?

4 个答案:

答案 0 :(得分:3)

我会用&amp;&amp ;.你希望它不是空的而不是空的吗?

答案 1 :(得分:3)

因为它永远都是真的。

你说if it's not a blank string OR it's not NULL。当它为NULL时,它不是一个空字符串(所以它是真的)。当它是一个空白字符串时,它不是NULL(所以它是真的)。​​

您想要的是if (therow != '' && therow != null)或更有可能if (therow)。我也见过if (!!therow),它强迫它成为一个实际的波浪值。

答案 2 :(得分:1)

试试这个:

if (!!therow){
           //some code
    } else {
          //more code
    }

这是更短的方式

答案 3 :(得分:0)

使用DeMorgans theoremtherow != '' || therow != null转换为therow == '' && therow == null并研究转换。 therow如何同时''null