js中null(空指针)的处理以及if(var)的理解

function checkQuanJiaFu(){
		var mobil =document.getElementById("mobile");
		var rfComPhone =document.getElementById("rfComPhone");
		var flag = true;
		alert(mobil +'ss'+rfComPhone);
		var regTextMobil=/^0{0,1}(13[0-9]|15[0-9]|18[0-9])[0-9]{8}$/;
		if(mobil.value!=''){
			if(!regTextMobil.test(mobil.value)){
				alert('手机号码格式不符');
				mobil.value="";
				flag = false;
			}
		}
		if(rfComPhone.value!=''){
			if(!regTextMobil.test(rfComPhone.value)){
				alert('手机号码格式不符');
				rfComPhone.value="";
				flag = false;
			}
		}
		return flag;
	}


今天再修改之前做过的一个js时,由于mobile和rfComPhone有可能不同时出现在一个页面上,就导致了可能有null的情况,这样如果像上面代码中两个if中表达式的写法,就总有一个是不起作用的,但是又没错误提示,纠结了好长时间,后经同事指点,才发现要对null进行判断。于是代码修改if(mobil&&mobil.value!='')

 

function checkQuanJiaFu(){
		var mobil =document.getElementById("mobile");
		var rfComPhone =document.getElementById("rfComPhone");
		var flag = true;
		alert(mobil +'ss'+rfComPhone);
		var regTextMobil=/^0{0,1}(13[0-9]|15[0-9]|18[0-9])[0-9]{8}$/;
		if(mobil&&mobil.value!=''){
			if(!regTextMobil.test(mobil.value)){
				alert('手机号码格式不符');
				mobil.value="";
				flag = false;
			}
		}
		if(rfComPhone&&rfComPhone.value!=''){
			if(!regTextMobil.test(rfComPhone.value)){
				alert('手机号码格式不符');
				rfComPhone.value="";
				flag = false;
			}
		}
		return flag;
	}


 错误是改过来了,但是,又发现一个问题,就是if(var)是什么意思?提出这个问题才发现原来自己的js水平还是依然很菜的,要继续学习。。。。

==========================

关于if(var)的理解

发现网友的这段js写的很全啦,太好了,转过来学习!

    <script type="text/javascript">
        var r = "";
        window.onload = function () {
            var a;
            wLine(((a) ? "true " : "false ") + typeof (a)); //false  a==undefined
            wLine(((a=null) ? "true " : "false ") + typeof (a)); //false  a==null
            wLine(((a = -0) ? "true " : "false ") + typeof (a)); //false  a==0
            wLine(((a = -0.000000000001) ? "true " : "false ") + typeof (a)); //true a!=0
            wLine(((a = "") ? "true " : "false ") + typeof (a)); //false  a==""
            wLine(((a = " ") ? "true " : "false ") + typeof (a)); //true  a==" "  空格
            wLine(((a = function () { return false; }) ? "true " : "false ") + typeof (a)); //true a==function
            wLine(((a =( function () { return false; }))() ? "true " : "false ") + typeof (a)); //false a==function 
        }
        function wLine(val) {
          var f = document.forms[0];
          if(f)f.innerHTML+=val+"<hr/>";
          else alert(val);
        }
    </script>


从上面的代码可以看到,if表达式是很灵活的,除了像java中常见的表达式形式,还有很多情况

if(a)... 等价于  if(a==true) 或者if(a!=null)等等的意思。但是前者的范围比较大。
if(a) 只要a!=0 ; a!=null;a!=undefined;a!=""的情况下就成立了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值