zoukankan      html  css  js  c++  java
  • js整理常用方法

    javascript对象合并或追加属性的方法
    function objMerger(obj1, obj2){
        for(var r in obj2){
            //eval("obj1."+r+"=obj2."+r);
            //
            obj1[r] = obj2[r]; //obj1.r或obj2.r错误的
        }
        return obj1;
    }
     var obj = {a:'aa',b:'bb'};
     var shuxing = {c:'c1',d:'d1',e:55}
     obj = objMerger(obj, shuxing);
     console.log(obj);
     console.log(obj.a+'__'+obj['a']);  //这是正确的;obj[a]错误的
    上面的例子中:r是一个变量,a和b是变量名字,故变量名字可以直接用.或['变量名字'],而变量只能用[变量]
    //验证字符个数
    function checkNum(chars){
        var sum = 0;
        for(var i=0;i<chars.length;i++){
            var c = chars.charCodeAt(i);
            if((c>=0x0001 &&c<=0x007e)||(0xff60<=c && c<=0xff9f)){
                sum++;
            }else{
                sum+=2;
            }
        }
        return sum;
    }
    //判断input只能输入数字
    function IsNum(e) {
        var k = window.event ? e.keyCode : e.which;
        if (((k >= 48) && (k <= 57)) || k == 8 || k == 0) {
        } else {
            if (window.event) {
                window.event.returnValue = false;
            }
            else {
                e.preventDefault(); //for firefox
            }
        }
    }
    //编码url
    function getEscapeParamStr (jsonData){
        if (!jsonData) return '';
        var qarr = [];
            for(i in jsonData){
                  qarr.push(i+"="+encodeURIComponent(jsonData[i]));
        }
        return qarr.join('&');
    }
    /*
     * 判断对象是否为空
     * return boolean 为空返回true,否则返回false
     * (例如为obj = {} 或 obj = null都是为空的)
     */
    function isNullObject(object){
        if(!object)return true;
        for(var i in object){
            return false;
        }
        return true;
    }
    /**
     * 合并对象,把对象obj2合并到对象obj1上
     * @param obj1
     * @param obj2
     * @returns
     */
    function objMerger(obj1, obj2){
        for(var r in obj2){        
            obj1[r] = obj2[r]; 
        }
        return obj1;
    }
    /**
     * 输出对象属性个数
     * @param obj
     * @returns {Number}
     */
    function countObject(obj){
        var num = 0;
        if(!obj)return num;
        for(var i in obj){
            num ++;
        }
        return num;
    }
    function checkTime (startTime,endTime,type){ 
        if(!startTime){ 
            jsAlert('起始日期不能为空'); 
            return false; 
        } 
        if(!endTime){ 
            jsAlert('结束日期不能为空'); 
            return false; 
        } 
        if( startTime > endTime){ 
            jsAlert('请输入正确的日期范围'); 
            return false; 
        } 
        var myDate = new Date(); 
        var date = myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate(); 
        //当前时间和开始时间相差天数 
        var day = dateDiff('D',startTime,date); 
        if(day > 180){ 
            jsAlert('开始时间在180天内'); 
            return false; 
        }     
        //结束时间和开始时间相差天数 
        day = dateDiff('D', startTime, endTime); 
        if('list' == type){ 
            if(day > 14){ 
                jsAlert('开始时间结束时间之间不能超过2周'); 
                return false; 
            } 
        }else if('export' == type){ 
            if(day > 31){ 
                jsAlert('导出时时间范围在1个月(31)天内'); 
                return false; 
            } 
        } 
        return true; 
    } 
    //计算日期差 
    function dateDiff(interval, date1, date2) 
    { 
        var objInterval = { 
               'D':1000 * 60 * 60 * 24, 
               'H':1000 * 60 * 60, 
               'M':1000 * 60, 
               'S':1000, 
               'T':1 
        }; 
        interval = interval.toUpperCase(); 
        var dt1 = new Date(Date.parse(date1.replace(/-/g, '/'))); 
        var dt2 = new Date(Date.parse(date2.replace(/-/g, '/'))); 
        try
        { 
           return Math.round((dt2.getTime() - dt1.getTime()) / eval('objInterval.'+interval)); 
         } 
        catch (e) 
        { 
          return e.message; 
        } 
    }
    
    autoClearCache();
    //js刷新页面js缓存的方法
    function autoClearCache(){
      var clearCacheHtml= ''
          +'<META HTTP-EQUIV="pragma" CONTENT="no-cache">'
           +'<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">'
           +'<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">'
           +' <META HTTP-EQUIV="expires" CONTENT="0"> ';
      $('head').append(clearCacheHtml);
    }
    //动态的引入js文件或在一个js文件中引入另一个js文件
    //document.write("<script type='text/javascript' language='javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' ></script>");
    
    //window.location.reload();
    var src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
        LoadJS(src);
    init();
    var num = 0;
    function init(){
        num++;    
        var datas = {_t:0,category:9999,mid:3646697885979296,soururl:'',srvid:''};
            datas.reason ='找不到张艺谋”,谁信?'+num;
        var url = "http://hot.weibo.com/ajax/addone?__rnd=1384929440619";
        $.post(url,datas,function(msg){
           console.log(num);      
           if(num < 10){
           setTimeout(init,800);
           }
        });
    }
    
    function LoadJS(src){
       var headObj = document.getElementsByTagName("head")[0];
       srciptObj = document.createElement("script");
       srciptObj.language = "javascript";
       srciptObj.type = "text/javascript";
       srciptObj.src = src;
       headObj.appendChild(srciptObj);
    }
    //检测对象是否为空
    function type(o){  
        return (o === null) ? "null" : (typeof o);  
    } 
    // 安全检测JavaScript基本数据类型和内置对象  
    // 参数:o表示检测的值  
    /* 返回值:返回字符串"undefined"、"number"、"boolean"、
    "string"、"function"、"regexp"、"array"、"date"、"error"、"object"或"null" */  
    function typeOf(o){  
        var _toString = Object.prototype.toString;    
        // 获取对象的toString()方法引用  
        // 列举基本数据类型和内置对象类型,可以进一步补充该数组的检测数据类型范围  
        var _type ={  
            "undefined" : "undefined",  
            "number" : "number",  
            "boolean" : "boolean",  
            "string" : "string",  
            "[object Function]" : "function",  
            "[object RegExp]" : "regexp",  
            "[object Array]" : "array",  
            "[object Date]" : "date",  
            "[object Error]" : "error"  
        }  
        return _type[typeof o] || _type[_toString.call(o)] || (o ? "object" : "null");   
    } 
    
    //应用示例:
    var a = Math.abs;  
    alert(typeOf(a));       //"function" 
    日期时间转换(int类型的时间戳转换为年月日时分秒)
    function getLocalTime(nS) {     
           return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:d{1,2}$/,' ');     
    }
    或
    cache.ltime = new Date(parseInt(detail.created_time)*1000).toLocaleString().replace(/[年月]/g,'/').replace(/[日]/g,'');
  • 相关阅读:
    【Android Developers Training】 85. 不要有冗余的下载
    【Android Developers Training】 84. 将定期更新的影响最小化
    【Android Developers Training】 83. 实现高效网络访问来优化下载
    【Android Developers Training】 82. 序言:传输数据时减少对电池寿命的影响
    【Android Developers Training】 81. 解析XML数据
    Linux下C程序进程地址空间布局[转]
    GNOME keyring [(null)] 的密码:
    Advanced Memory Allocation 内存分配进阶[转]
    Linux下进程信息的深入分析[转]
    安装juicer
  • 原文地址:https://www.cnblogs.com/andydao/p/3422891.html
Copyright © 2011-2022 走看看