如果条件在JavaScript中针对AND &&执行,则不应

时间:2019-10-11 13:06:54

标签: javascript if-statement conditional-operator

这是3个字段的简单形式,我已经设置了条件以检查是否为空。

我在运行时提供了电子邮件输入,但是以下情况一直为真:

if ((inputName.value == null) && (inputEmail.value == null) && (inputDate.value == null)){
console.log('empty fields')
alert('All the fields are mandatory')
return;
}

有人可以告诉我这里出什么问题吗?

3 个答案:

答案 0 :(得分:2)

尝试此操作,而不是将空匹配与“

if ((inputName.value == '') || (inputEmail.value == '') || (inputDate.value == '')){
  console.log('empty fields')
  alert('All the fields are mandatory')
  return;
}

编辑:用&|替换&&

答案 1 :(得分:2)

我看到两个问题。

第一个是value可能是空字符串。您可以使用!来处理-空字符串和null / undefined。

第二个,如果所有字段都是必填字段,则任何缺少的字段都将触发if语句,因此您需要or,即||

if ((!inputName.value) || (!inputEmail.value) || (!inputDate.value)){
  console.log('empty fields')
  alert('All the fields are mandatory')
  return;
}

然后,您还应该开始思考如何以易于扩展的方式编写它。这样就可以了

    if (anyEmpty([inputName.value, inputEmail.value, inputDate.value])){
      console.log('empty fields')
      alert('All the fields are mandatory')
      return;
    }

function anyEmpty(arr) {
  arr.forEeach(str => {
    if (!str) {
      return true;
    }
  }

  return false;
}

答案 2 :(得分:1)

有几种方法可以检查Javascript中的字符串是否为空。我想检查一下它的长度是否为0。

 temp<- c(data1)


 ret<-c(cumsum(data1))

 a<-tail(ret,n = -3)
 b<- head(ret,n=-3)
 a-b
 #9  13  18  24  31  39  38  48  59  81  84  98 113 129 146 164  
 THIS IS WHAT I GET (wrong) 

 THIS IS WHAT I AM EXPECTING (python can give this) 

 # 9 12 15 18 21 24 17 20 23 36 39 42 45 48 51 54