javascript jquery 判斷對象爲空的方式

java中存在很多空指針的問題,需要經常做預防和判斷,如若不然,控制檯出現惱人的異常,讓人信心備受打擊,早期寫程序的時候沒有經驗,不能根據異常信息找到問題的根源,唯一做的事情就是祈禱,千萬別出現什麼異常信息啊!現在碰到與問題,到希望異常信息越詳細越好,但偏偏事與願違,我們所採用的框架居然把所有的異常全部throws 即使再controller獲取也比較麻煩,一旦出現與預期不一樣的結果,都不知道是哪裏出了問題,調試起來確實不便.

js中也是一樣,雖然不會出現一大串異常代碼,但控制檯還是會有錯誤警告的,這段時間一直使用chrome和IE11調試js代碼,覺得其方便性不亞於直接使用MyEclipse調試java代碼,java裏面判斷字符串變量是否爲空,很簡單了:

String str = "";
if(str!=null&&!"".equals(str)){
//your code
}

當然也可以使用框架上的API實現:

String str = "";
if(StringUtils.isNotEmpty(str)){
	//your code
}

StringUtils.isNotEmpty是 org.apache.commons.lang.這個包下面的類,別與spring裏面的混爲一談.

在js中,也是經常需要判斷變量是否爲空的,要不然會經常出現undefined或null等情況.

如果是字符串類型或者對象類型,只需要採用這樣的方式:

if(str){
   //your code
}


當str==undefined 或str==null或str==""的時候都是返回false的,但是當str=="0"的時候卻返回true,因爲"0"也是字符串,是非空的字符串變量.

如果當變量是數值類型,比如:

var i = 0;
if(i){
   //your code
}

這樣是返回false的,js是弱類型的語言,對於String類型和數值類型的區分不嚴格,也就是通過var定義的變量可以是任何類型的,只要你對它進行初始化,比如:

var arr = [];
var str = "123";
var obj = {field:"123"};
var i = 2;
i = arr;
i = str;
i = obj;

變量定義以後進行初始化,值是什麼類型的,變量就是什麼類型的變量,然後重新進行賦值,變量的類型就又會發生改變,當然了,你可以理解爲,var類型是一切類型的父類型,因此可以"包羅萬象"了.因此以上的代碼都是正確的,不會出現錯誤,但爲了代碼的可讀性,建議不同類型的變量不要相互賦值,以免發生混亂.

最後多說一句,String類型的變量一般可以跟其他類型的變量發生轉換比如:

var str = "0";
i = 0;
alert(str == i);

返回true

當變量未定義的時候,直接進行了初始化,也是可以識別的:

xx = 0;
if("0"==xx){
  alert(xx);
}
如果未定義且爲初始化,直接拿來用,那就不行了.

//////////////////////////////////////////////////////////////////////////////////


jquery 判斷一個對象是否存在  


 jQuery 代碼判斷一個對象是否存在:


***********************錯誤***********************


if($("#id")){}else{}因爲 $(“#id”) 不管對象是否存在都會返回 object 。


***********************正確***********************


if($("#id").length>0){}else{}使用 jQuery 對象的屬性 length 來判斷,如果 > 0 就存在。


或者


 if($("#id")[0]){} else {}


或者


直接使用原生的 Javascript 代碼來判斷: if(document.getElementById("id")){} else {}

////////////////////////////////////////////////////////////////////////////////

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章