JavaScript 用到的一些常用方法总结

4 篇文章 0 订阅

1、判断两个对象是否相等

    different(obj1,obj2){
        var o1 = obj1 instanceof Object;
        var o2 = obj2 instanceof Object;
        if(!o1 || !o2){
            return obj1 === obj2;
        }
        if(Object.keys(obj1).length !== Object.keys(obj2).length){
            return false;
        }
        for(var attr in obj1){
            var t1 = obj1[attr] instanceof Object;
            var t2 = obj2[attr] instanceof Object;
            if(t1 && t2){
                return this.diff(obj1[attr],obj2[attr]);
            }else if(obj1[attr] !== obj2[attr]){
                return false;
            }
        }
        return true;
    },

2、复制一个对象

    objDeepCopy(source) {
        var sourceCopy = source instanceof Array ? [] : {};
        for (var item in source) {
            sourceCopy[item] = typeof source[item] === 'object' ? this.objDeepCopy(source[item]) : source[item];
        }
        return sourceCopy;
    },

3、判断两个日期间隔的天数

   dateDifferent(Date1,Date2) { 
        var newDate1 = new Date(Date1);
        var newDate2 = new Date(Date2);
        var Days ;
        Days = parseInt(Math.abs(newDate1 - newDate2) / 1000 / 60 / 60 / 24); //把差的毫秒数转换为天数  
        return Days;
    },

4、格式化时间:2018-12-12 12:12格式:

   formatTime: function(time){
       var date = new Date(time); 
       var hours =  date.getHours()>=10?date.getHours():('0'+date.getHours());
       var minutes =  date.getMinutes()>=10?date.getMinutes():('0'+date.getMinutes());
       var dateValue=date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + hours + ':' + minutes;
       return dateValue;
   }

5、获取n天前(n<0)或者n天后(n>0)的日期:

      fun_date(n){
          var date2 = new Date();
          date2.setDate(new Date().getDate()+n);
          var time2 = date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+date2.getDate();
          return time2
      },

6、时间戳转为普通日期格式:

     function add0(m){return m<10?'0'+m:m }
     function format(date){
	     var time = new Date(date);
	     var y = time.getFullYear();
	     var m = time.getMonth()+1;
	     var d = time.getDate();
	     var h = time.getHours();
	     var mm = time.getMinutes();
	     var s = time.getSeconds();
	     return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
     }

7、js获取url中的参数:

    // 获取url中的指定参数
      GetRequest2: function(key){
          var url = location.search;  
          var theRequest = new Object();
          if (url.indexOf("?") != -1) {
              var str = url.substr(1);
              var strs = str.split("&");
              for (var i = 0; i < strs.length; i++){
                  theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
              }
          }
          var value = theRequest[key];
          return value;
      },

8、移动端加入console(很实用的一个工具),在header添加:

    <script src="https://cdn.bootcss.com/vConsole/3.3.2/vconsole.min.js"></script>
    <script>
        var vConsole = new VConsole();
    </script>

9、图片的bese64格式转化为文件格式:

     dataURLtoFile: function(dataurl, filename) {//将base64转换为文件
         var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
             bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
         while(n--){
             u8arr[n] = bstr.charCodeAt(n);
         }
         return new File([u8arr], filename, {type:mime});
     },

10、H5输入框简单的判断有没有输入表情符号(不能准确地判断出每一个表情):

     isInputEmoji: function(param){
            var regRule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;
            if(param.match(regRule)) {
                return false;
            }else{
                return true;
            }
        },

11、复制文字到剪切板:

	  copyText: function(text){
	       var oInput = document.createElement('input');
	       oInput.value = text;
	       document.body.appendChild(oInput);
	       oInput.select(); // 选择对象
	       document.execCommand("Copy"); // 执行浏览器复制命令
	       oInput.className = 'oInput';
	       oInput.style.display='none';
	       this.$Message.success('已复制到剪切板');
	   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值