我的脚本中有这段代码
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语句中时它什么都不做?
以上代码有问题吗?
答案 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 theorem将therow != '' || therow != null
转换为therow == '' && therow == null
并研究转换。 therow
如何同时''
和null
?