主要記錄一些工做上碰到的問題,不按期跟新
一、由於工做調接口,後端返回字段常常變化,今天遇到這樣一個問題。後端
// 判斷返回 arr ,若是是 null 或 [] 空數組就顯示'' // 假設返回字段是 usersName // 初始想法,經過if語句,進行判斷,確認返回值。 var userName = []; var str = ''; if (userName) {//空數組爲true alert(123); str = userName.join(); } // 這樣能夠實現需求,可是突然想到一個細節,這個方法只能判斷null爲false,可是判斷userName 空數組則爲ture。 // 若是不是簡單的執行join()方法,邏輯上確定會報錯。其原理是由於,null是對象空指針,布爾值爲false // 而[]空數組是一個數組對象,布爾值爲ture,因此會執行if裏邊的語句。
二、JS對象不能夠直接調用JQ方法數組
<!-- 使用JQ方法時,注意將DOM對象轉換爲JQ對象 --> <!-- 好比,使用jQ判斷點擊對象是否包含某一屬性值。--> <span class="cs cs-one" onclick="edit(this)">點擊我</span> <script> function edit(obj) { // 會報錯 if ( obj.hasClass('cs-one') ) { alert('ok'); } } </script> <!-- 執行語句會報錯,hasClass not function。 --> <!-- 由於hasClass是JQ方法,而經過jS的DOM對象調用方法就會報錯。 --> <!-- 須要將JS對象轉成JQ對象 $(obj) --> <script> function edit(obj) { // 正確 if ( $(obj).hasClass('cs-one') ) { alert('ok'); } } </script> <!-- 問題:JS對象能夠直接調用JQ方法嗎? -->
三、如何獲取href連接中字符對應的值this
var id = GetArgsFromHref(href,"id");//獲取id function GetArgsFromHref(sHref, sArgName){ var args = sHref.split("?");//將連接切分紅數組 var retval = "";//須要返回的字符串 if(args[0] == sHref){//參數爲空 return retval;//返回空字符串,無需作任何處理 } var str = args[1];//獲取?後邊字符串 args = str.split("&");//將字符串以&切分紅數組 for(var i = 0; i < args.length; i ++){//遍歷切分後的數組 str = args[i]; var arg = str.split("=");//切分數組中的字符串 if(arg.length <= 1) continue;//沒有=後邊的值跳過 if(arg[0] == sArgName) retval = arg[1];//獲取到對應的值 } return retval;//返回對應的值 }