前端开发常用的js函数
2019-11-29 本文已影响0人
蜡笔小序
1、promise封装的jquery中的ajax函数
function ajaxRequest(url,params,type,timeout){
return new Promise((reslove,reject)=>{
$.ajax({
url,
type:type || 'get', //默认get
dataType:'json',
data: params || '',
headers:{"Content-Type":"application/json;charset=utf-8;"},
timeout: timeout || 120000 , // 默认请求2分钟
success: (data)=>{
resolve(data);
},
error: (error)=>{
reject(error);
}
})
}).catch(()=>{
alert('请求超时!')
});
}
//get 使用
ajaxRequest(`url`).then((res)=>{console.log(res)})
// post或其他请求
ajaxRequest(`url`,p,'post').then((res)=>{console.log(res)})
2、获取地址栏中的指定参数
function getUrlParam(name){
//构造一个含有目标参数的正则表达式对象
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
let r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
// 使用
console.log(getUrlParam('name'))
3、过滤没有值(值为空或null)的参数
function hasval(obj){
if(obj && obj!=={}){
for(let k in obj){
if(obj[k] === ''){
delete obj[k]
} else if(obj[k] === null || obj[k] === undefined || obj[k] === 'null'){
delete obj[k]
} else if(obj[k] instanceof Array && obj[k].length === 0){
delete obj[k]
} else if (JSON.stringify(obj[k]) == "{}"){
delete obj[k]
}
}
return obj
}
}
// 使用
let p = {name:'',age:12};
let ps = hasval(p) // {age:12};
4、分钟转化成 00:00格式
function tomint(time){
let lasttime = '';
if(time<60){
lasttime = time < 10 ? `00:0${time}`: `00:${time}`;
} else {
let m = time%60 < 10 ? `0${time%60}` : time % 60;
let h = (time - m)/60 < 10 ? `0${(time-m)/60}` :(time-m)/60;
lasttime = `${h}:${m}`;
}
return lasttime;
}
console.log(tomint(90)) // 01:30
5、时间转化为时间戳
function getTime(dateString) { //时间转时间戳
let date = dateString;
date = new Date(Date.parse(date.replace(/-/g, "/")));
date = date.getTime();
return date;
}
console.log(getTime('2019-2-19')) // 1550505600000
6、比较两个时间的大小
function judetime(time1,time2){
let t1 = new Date(time1);
let t2 = new Date(time2);
if (t1.getTime() > t2.getTime()) {
return '第一个时间大于第二个时间'
} else if (t1.getTime() == t2.getTime()){
return '第一个时间等于第二个时间'
} else {
return '第一个时间小于第二个时间'
}
}
console.log(judetime('2019-10-1','2019-10-5'))
7、时间戳转为日期 不带时分秒
function getLocalTime(nS) { //时间戳转时间 不带时分秒
let date = new Date(nS);
Y = date.getFullYear() + '-';
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
D = (date.getDate() < 10 ? '0'+(date.getDate()) : date.getDate());
return Y+M+D;
}
console.log(getLocalTime(new Date()))
8、时间戳转日期 带时分秒
function getLocalTimeHFS(shijianchuo) { //时间戳转时间 带时分秒
let time = new Date(shijianchuo);
let y = time.getFullYear();
let m = time.getMonth()+1 < 10 ? '0'+time.getMonth()+1:time.getMonth()+1;
let d = time.getDate() < 10 ? '0'+time.getDate():time.getDate();
let h = time.getHours() < 10 ? '0'+time.getHours():time.getHours();
let mm = time.getMinutes() < 10 ? '0'+time.getMinutes():time.getMinutes();
let s = time.getSeconds() < 10 ? '0'+time.getSeconds():time.getSeconds();
return `${y}-${m}-${d} ${h}:${mm}:${s}` ;
}
console.log(getLocalTimeHFS(new Date()))
9、当前日期增加指定月份
function addMonth(sDate, n) { // 月份新增 sDate是个时间戳
let num = parseInt(n);
let sYear = sDate.getFullYear();
let sMonth = sDate.getMonth() + 1;
let sDay = sDate.getDate();
let eYear = sYear;
let eMonth = sMonth + num;
let eDay = sDay;
while (eMonth > 12) {
eYear++;
eMonth -= 12;
}
var eDate = new Date(eYear, eMonth - 1, eDay);
while (eDate.getMonth() != eMonth - 1) {
eDay--;
eDate = new Date(eYear, eMonth - 1, eDay);
}
return getLocalTime(eDate);
}
console.log(addMonth(new Date(),8))
10、获取当月的上个月第一天
function getlastmonthFirstday(){ //获取当月的上一个月第一天
let d = new Date;
let y = d.getFullYear();
let m = d.getMonth();
let day = ''
if (m === 0) {
day = `${y - 1}-12-01`;
} else {
if (m < 10) {
day = `${y}-0${m}-01`;
} else {
day = `${y}-${m}-01`;
}
}
return day;
}
console.log(getlastmonthFirstday())
11、按照指定长度为数字前面补零
function prefixInteger(num, length) { // 照指定长度为数字前面补零 num为值 length为长度
return (Array(length).join('0') + num).slice(-length);
}
console.log(prefixInteger(8, 9)) 0000000081
12、把数组中的String型数字转为Number型
function toNum(str){ //把数组中的字符型数字 转为数字型
let arrnum = [];
for(let i = 0 ;i<str.length;i++){
arrnum.push(str[i]*1)
}
return arrnum
}
console.log(toNum(['1','2','3'])) // [1,2,3]