深复制对象方法
/**
* 深复制对象方法
* @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;
};