js空判断错误

用js判断两个input是不是为空,是这样干的:

var shang = ("#shang").val();
var xia = ("#xia").val();

if(shang == null || shang == ""){
   if(xia != null || xia != ""){
      alert(shang为空);  
      return;
   }
}

但是不知道为啥,两个input框都是空的时候,也输出了"shang为空";它不应该能有结果输出啊?

阅读 2.1k
3 个回答
if(shang == null || shang == ""){
   if(xia != null || xia != ""){

这里不用判断 null,直接判断空串就行了。

你把结果带入是空串

var shang = ''//("#shang").val();
var xia = ''//("#xia").val();

if(shang == null || shang == ""){
   if(xia != null || xia != ""){
      console.log('shang为空');  
//       return;
   }
}

'' != null 的时候为 true 所以执行了

input的空一般都是空字符串,空字符串和null不相等,null和undefined可以归为一类,所以上面的shang == null不会命中,但是命中了shang == "",继续判断下面的if,xia也是空字符串,xia != null命中,执行alert

加入两个都是空字符串不会继续下去,若俩个都是null 则两个if会判断正确

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题