JavaScript常用方法

深复制对象方法

/**
* 深复制对象方法
* @param obj
*/
var cloneObj = function (obj) {
	var newObj = '';
	if (obj instanceof Array) {
		newObj = [];
	} else if (obj instanceof Object) {
		newObj = {}
	}
	for (var key in obj) {
		var val = obj[key];
		//newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; 
		//arguments.callee 在哪一个函数中运行,它就代表哪个函数, 一般用在匿名函数中。
		newObj[key] = typeof val === 'object' ? cloneObj(val) : val;
	}
	return newObj;
}

解决连续点击多次冲出触发事件

/**
* 解决连续点击多次冲出触发事件
*/
function throttle(fn, gapTime) {
	if (gapTime == null || gapTime == undefined) {
		gapTime = 1500
	}
	let _lastTime = null
	// 返回新的函数
	return function () {
		let _nowTime = + new Date()
		if (_nowTime - _lastTime > gapTime || !_lastTime) {
			fn.apply(this, arguments) //将this和参数传给原函数
			_lastTime = _nowTime
		}
	}
}

用于判断空,Undefined String Array Object

/**
* 用于判断空,Undefined String Array Object
*/
function isEmpty(str) {
	if (Object.prototype.toString.call(str) === '[object Undefined]') { //空
		return true;
	} else if (
		Object.prototype.toString.call(str) === '[object String]' ||
		Object.prototype.toString.call(str) === '[object Array]') { //字条串或数组
		return str.length == 0 ? true : false
	} else if (Object.prototype.toString.call(str) === '[object Object]') {
		return JSON.stringify(str) == '{}' ? true : false
	} else {
		return true;
	}
};

编码

/**
* 编码
*/
function urlencode(str) {
str = (str + '').toString();
return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

时间戳转时间

/**
* 时间戳转时间
*/
function timestampToTime(timestamp) {
	var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
	var Y = date.getFullYear() + '-';
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
	var D = date.getDate() + ' ';
	return Y + M + D;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值