常用封装小方法

1、对象操作
/**
 * 深拷贝
 */
function deepcopy(obj){
   var newobj = {};
   for(arr in obj){
       if (typeof obj[arr]==='object' && obj[arr] !== null) {
           newobj[arr] = deepcopy(obj[arr]); //递归,核心代码
       } else {
           newobj[arr] = obj[arr];
       }
   }
   return newobj;
}
2、数字操作
/**
 * 转成数字
 */
function shiftNum(value) {
	if (isNaN(parseFloat(value))) {
		value = 0;
	}
	return parseFloat(value);
};
/**
 * 强制保留两位小数
 */
function twoNum(value) {
	if (isNaN(parseFloat(value))) {
		value = 0.00;
	}
	return parseFloat(value).toFixed(2);
};
/**
 * 最多两位小数
 */
function moreTwoNum(value) {
	if (isNaN(parseFloat(value))) {
  		value = 0;
	}else{
		value=parseFloat(value);
		value = value.toString().split(".")[1] && value.toString().split(".")[1].length > 2 ? value.toFixed(2) : value ;
	}
	return parseFloat(value);
};
/**
 * 个位数字前面加0
 */
function zeroNum(num){
	if (isNaN(parseFloat(value))) {
		value = 0;
	}else{
		value=parseFloat(value);
	}
	value=value>9?value:'0'+value;
	return value;
}
3、字符串操作
/**
 * 从地址栏截取参数
 */
function getQueryString(name) {
	var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
	let href=window.location.href;
	let url = href.split('#')[0];
	let search = url.split('?')[1];
	if (search) {
		var r = search.substr(0).match(reg);
		if (r !== null) return unescape(r[2]);
			return null
		} else {
			return null
		}
	}
}
4、设备信息
/**
 * 查看当前设备
 */
function getDevice(){
	var u = navigator.userAgent;
	var deviceName="";
	if (u.indexOf('Android') > -1 || u.indexOf('Adr') > -1) {
		// 安卓
		deviceName="Android";
	} else if (u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
		// ios
		deviceName="IOS";
	} else {
		// 其他
		deviceName="other";
	}
	return deviceName;
}
/**
 * 看是否微信
 */
function isWeiXin() {
	var ua = window.navigator.userAgent.toLowerCase();
	// alert(ua);
	if (ua.match(/MicroMessenger/i) == 'micromessenger') {
		return true;
	} else {
		return false;
	}
}
5、日期
/**
 * 获得时间日期格式:yy-mm-dd
 */
function getTimeStr(needDate){
	var date=needDate?new Date(needDate):new Date();
	let year = date.getFullYear();
	let month = (date.getMonth()+1)>9?(date.getMonth()+1):'0'+(date.getMonth()+1);
	let day = date.getDate()>9?date.getDate():'0'+date.getDate();
	let hour = date.getHours()>9?date.getHours():'0'+date.getHours();
	let minute = date.getMinutes()>9?date.getMinutes():'0'+date.getMinutes();
	return year+"-"+month+"-"+day+" "+hour+":"+minute;
}
6、图片
/**
 * 图像转Base64
 */
function getBase64Image(img) {
	var canvas = document.createElement("canvas");
	canvas.width = img.width;
	canvas.height = img.height;
	var ctx = canvas.getContext("2d");
	ctx.drawImage(img, 0, 0, img.width, img.height);
	var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
	var dataURL = canvas.toDataURL("image/" + ext);
	return dataURL;
}
7、请求
/**
 * uniapp数据请求
 */
const req = (param) =>{
  return new Promise(function(resolve,reject){
    uni.request({
      data: param.data || {},
      url: apiUrl + param.url,
      /*header: param.header || {
		"Authorization": uni.getStorageSync('token'),
        "Content-Type": "application/json"
      },*/
      method: param.method || 'POST',
      success: res => {
        if( res.statusCode == 200 ){
			resolve( res )
        }else{
			reject( res )
        }
      },
      fail: rec =>{
		  // console.log(rec)
			reject( rec )
      }
    });
  })
}

你可能感兴趣的:(技术贴,javascript,封装方法)