在手机调试时打印代码
<script src="https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"></script>
<script>
 var vConsole = new VConsole();
 console.log('VConsole is cool');
</script>
import * as date from "./date.js";
/**
* 函数防抖 (只执行最后一次点击)
* @param fn
* @param delay
* @returns {Function}
* @constructor
*/
export const Debounce = (fn, t) => {
let delay = t || 500;
let timer;
console.log(fn)
console.log(typeof fn)
return function () {
let args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
timer = null;
fn.apply(this, args);
}, delay);
}
};
/**
* 函数节流
* @param fn
* @param interval
* @returns {Function}
* @constructor
*/
export const Throttle = (fn, t) => {
let last;
let timer;
let interval = t || 500;
return function () {
let args = arguments;
let now = +new Date();
if (last && now - last < interval) {
clearTimeout(timer);
timer = setTimeout(() => {
last = now;
fn.apply(this, args);
}, interval);
} else {
last = now;
fn.apply(this, args);
}
}
};
/**
* 转换日期格式为2019年11月11日、2019年正月初一
* @param {*} name
* @param {*} value
* @param {*} expiredays
*/ export const getChangeDate = (info, type) => {
let birthInfoText = ''
// 日期互转
const lunar = date.solar2lunar(
parseInt(info.birthDayYear),
parseInt(info.birthDayMonth),
parseInt(info.birthDayDay),
);
console.log(info);
if (type == 2) {
birthInfoText = `农历 ${lunar.lYear||1985}年${lunar.IMonthCn||1}${lunar.IDayCn||1}`;
} else {
birthInfoText = `公历 ${info.birthDayYear||1985}年${info.birthDayMonth||1}月${info.birthDayDay||1}日`;
}
return birthInfoText
} // 存储cookie
export const SetCookie = (name, value, expiredays) => {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
var cookieVal = name + "=" + encodeURI(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())+ ";path=/";
document.cookie = cookieVal;
} /*读取cookie*/
export const GetCookie = (sKey) => {
sKey = sKey.replace(/([\.\[\]\$])/g, '\\\$1');
var rep = new RegExp(sKey + '=([^;]*)?;', 'i');
var co = document.cookie + ';';
var res = co.match(rep);
if (res) {
return decodeURI(res[1]) || "";
} else {
return null;
}
}; /*删除cookie*/
export const DelCookie = (sKey) => {
SetCookie(sKey,"",-1)
} // 获取参数
export const getQueryString = (name) => {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return "";
}
// 键盘
export const hackScrollTop = (vnode, offsetVal) => {
let target = vnode;
let t = navigator.userAgent;
// 区分组件和DOM
target.offsetTop || (target = vnode.$el);
if (t.indexOf("Android") > -1 || t.indexOf("Adr") > -1) {
document.documentElement.scrollTop = document.body.scrollTop =
target.offsetTop + parseInt(offsetVal);
}
setTimeout(() => {
target.scrollIntoViewIfNeeded();
}, 400);
}
// 定位
export const stackScroll = (vnode, offsetVal) => {
let target = vnode;
let t = navigator.userAgent;
// 区分组件和DOM
target.offsetTop || (target = vnode.$el);
document.documentElement.scrollTop = document.body.scrollTop =
target.offsetTop + parseInt(offsetVal);
setTimeout(() => {
target.scrollIntoViewIfNeeded();
}, 400);
}
// 判断是否是数字
export const isRealNum = (val) => {
// isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
if (val === "" || val == null) {
return false;
}
if (!isNaN(val)) {
return true;
} else {
return false;
}
}
// 判断null NaN undefined
export const isHasValue = (val) => {
if(val){
if (!val) {
return false;
}else if(val=='undefined'||val=='null'||val==' '||val=='NaN'){
return false;
}else{
return true
}
}else{
return false
}
}
//获取QS
export default function (search) {
  const map = Object.create(null);
  if (search[0] === '?') {
    search = search.substring(1);
  }
  const substrs = search.split('&');
  const len = substrs.length;
  for (let index = 0, substr; index < len; index += 1) {
    substr = substrs[index].split('=');
    if (substr[0]) {
      map[substr[0]] = substr[1];
    }
  }
  return map;
};
 

更新常用的js工具函数的更多相关文章

  1. 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)

    /*华丽------------------------------------------------------------------------------------------------ ...

  2. 常用的js工具函数

    JS选取DOM元素的方法注意:原生JS选取DOM元素比使用jQuery类库选取要快很多1.通过ID选取元素document.getElementById('myid');2.通过CLASS选取元素do ...

  3. js工具函数《转载收藏》

    1.等待所有图片加载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var imgObjs = [], count = 0; rotate.prize ...

  4. JS 工具函数 方法(其中js的crc32和php的crc32区别)

    var util = {}; util.indexOf = function (array, item) { for (var i = 0; i < array.length; i++) { i ...

  5. JS工具函数汇总

    备注:http://phpjs.org/  这个站点把PHP常用的方法用js实现了,推荐一下 1.从数组中随机获取几个不重复项 //从一个给定的数组arr中,随机返回num个不重复项 function ...

  6. (总结)工作中常用的js自定义函数——日期时间类

    //设置时间类 var Wsdatatime = function(){ this.today = (new Date()).getTime(); //当前时间 } Wsdatatime.protot ...

  7. JavaScript常用工具函数

    检测数据是不是除了symbol外的原始数据 function isStatic(value) { return ( typeof value === 'string' || typeof value ...

  8. 你要的几个JS实用工具函数(持续更新)

    今天,我们来总结下我们平常使用的工具函数,希望对大家有用.1.封装fetch 源码: /** * 封装fetch函数,用Promise做回调 * @type {{get: (function(*=)) ...

  9. 工作中常用的JS函数整理分享(欢迎大家补充)

    今年在渣X工作整理的常用JS函数 今年来了渣X工作,我所在这个部门分工很奇怪,CSS竟然有专门的人在搞,开发PHP的人员需要处理JS,以至于有时候开发起来不是那么得心应手,感觉把JS和CSS拆开就像是 ...

随机推荐

  1. 关于NIO编程

    NIO概述 什么是NIO? Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式. Ja ...

  2. openfire build(2)

    InterceptorManager PluginManager openfire 插件的中servlet 在web-custom.xml 中的配置 url 一定要小写,访问时不区别大写小 否则404 ...

  3. 勤于思考:jQuery Validation 在IE7(兼容模式)下出现“找不到成员”的脚本错误

    今天在调试IE10下使用IE6判断脚本出现错误,处理后说IE7也不行,调试后则会出现以下错误: SCRIPT3: 找不到成员. jquery171.js, 行2582 字符4 其实开始我认为是jque ...

  4. stack_1.设计一个有getMin功能的栈

    思路 : 生成两个栈($stack ,$stack_min ),往$stack塞数据($value)的时候 ,比较一下$value和$stack_min最上面的元素的大小,如果$value小,则压入$ ...

  5. linux 进程学习笔记-进程调度

    在分时系统中,系统将CPU时间划分成无数个时间片(quantum)分配给不同的进程,一个时间片只执行一个进程,并且不停地切换,以让用户感觉到各个进程是在“同时运行”,这中间所需要的策略和算法便是进程调 ...

  6. CodeForces - 311B:Cats Transport (DP+斜率优化)

    Zxr960115 is owner of a large farm. He feeds m cute cats and employs p feeders. There's a straight r ...

  7. MongoDB 分片的原理、搭建、应用 !

    MongoDB 分片的原理.搭建.应用   一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处 ...

  8. ORA-00119: invalid specification for system parameter REMOTE_LISTENER

    环境说明:   RAC 启动数据库报 ORA-00119: invalid specification for system parameter REMOTE_LISTENER   . 检查 list ...

  9. 一行代码解决IE6/7/8/9/10兼容问题

    百度源代码如下 <!Doctype html><html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.c ...

  10. 【转】unittest执行测试用例的N种姿势总结

    原文地址:https://www.cnblogs.com/fighter007/p/9514453.html 1.我们写几个方法,用来做测试用例 2.我们在另一文件中引用这个模块下面的所有类方法,先看 ...