溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js中null(空指針)的處理以及if(var)的理解

發(fā)布時(shí)間:2020-10-23 17:49:10 來源:網(wǎng)絡(luò) 閱讀:722 作者:沙漏半杯 欄目:編程語言


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('手機(jī)號(hào)碼格式不符');

mobil.value="";

flag = false;

}

}

if(rfComPhone.value!=''){

if(!regTextMobil.test(rfComPhone.value)){

alert('手機(jī)號(hào)碼格式不符');

rfComPhone.value="";

flag = false;

}

}

return flag;

}


今天再修改之前做過的一個(gè)js時(shí),由于mobile和rfComPhone有可能不同時(shí)出現(xiàn)在一個(gè)頁面上,就導(dǎo)致了可能有null的情況,這樣如果像上面代碼中兩個(gè)if中表達(dá)式的寫法,就總有一個(gè)是不起作用的,但是又沒錯(cuò)誤提示,糾結(jié)了好長(zhǎng)時(shí)間,后經(jīng)同事指點(diǎn),才發(fā)現(xiàn)要對(duì)null進(jìn)行判斷。于是代碼修改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('手機(jī)號(hào)碼格式不符');

mobil.value="";

flag = false;

}

}

if(rfComPhone&&rfComPhone.value!=''){

if(!regTextMobil.test(rfComPhone.value)){

alert('手機(jī)號(hào)碼格式不符');

rfComPhone.value="";

flag = false;

}

}

return flag;

}


?錯(cuò)誤是改過來了,但是,又發(fā)現(xiàn)一個(gè)問題,就是if(var)是什么意思?提出這個(gè)問題才發(fā)現(xiàn)原來自己的js水平還是依然很菜的,要繼續(xù)學(xué)習(xí)。。。。


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


關(guān)于if(var)的理解:


發(fā)現(xiàn)網(wǎng)友的這段js寫的很全啦,太好了,轉(zhuǎn)過來學(xué)習(xí)!


? ? <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表達(dá)式是很靈活的,除了像java中常見的表達(dá)式形式,還有很多情況


if(a)... 等價(jià)于? if(a==true) 或者if(a!=null)等等的意思。但是前者的范圍比較大。

if(a) 只要a!=0 ; a!=null;a!=undefined;a!=""的情況下就成立了。

歡迎工作一到五年的Java工程師朋友們加入Java技術(shù)交流:659270626
群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來學(xué)習(xí)提升自己,不要再用"沒有時(shí)間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個(gè)交代!


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI