Javascript 返回误报的If/Else语句

Javascript 返回误报的If/Else语句,javascript,if-statement,Javascript,If Statement,在我的代码中,我有这个if/else语句来处理数字和字母都返回cont=false的情况。我试着只运行这段代码,结果是一样的。显然,它应该执行else语句中的代码。有人有什么想法吗 var input = prompt() if (input == null || " ") { //Cont determines whether or not to continue console.log("cont = false"); var cont = false; }else{ co

在我的代码中,我有这个if/else语句来处理数字和字母都返回cont=false的情况。我试着只运行这段代码,结果是一样的。显然,它应该执行else语句中的代码。有人有什么想法吗

var input = prompt()

if (input == null || " ") {
  //Cont determines whether or not to continue
  console.log("cont = false");
  var cont = false;
}else{
  console.log("cont = true");
  var cont = true;
}

因为这段代码不是检查一个输入和两个值的方式

if ( input == null || " " )
应该是

if (input==null || input == " ")
计算为比较结果| |。现在,由于非空字符串是一个真实值,因此它的计算结果总是真的

就评审次序而言—

添加到关于| |运算符和优先级的所有正确回答中

在大多数情况下,使用==并不是一件好事,尤其是因为0==null等-如果您要检查它是否实际为null或空字符串,那么这样做更安全:

if (input === null || input.trim() === "") {
...

这会检查类型和内容,因此不会给出误报。虽然如果输入不是字符串,它会抱怨。

谢谢,太多了!作为迄今为止收到的所有答案的总结:

OR运算符| |将input==null与进行比较,后者的计算结果始终为true ==比==
再次感谢所有的帮助和支持

条件| |始终为真。您应该阅读JS中的各种比较运算符及其工作原理:。建议使用===而不是==。干杯
if (input === null || input.trim() === "") {
...