在手机调试时打印代码
<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. LightOJ - 1395 A Dangerous Maze (II) —— 期望

    题目链接:https://vjudge.net/problem/LightOJ-1395 1395 - A Dangerous Maze (II)    PDF (English) Statistic ...

  2. Dubbo之消费者

    在写 dubbbo调用时候 <dubbo:reference  不能有空格! 项目结构: pom: <project xmlns="http://maven.apache.org ...

  3. C++之封装

    希望暴露public 希望隐藏private 对象实例化有两种方式,从栈实例化,从堆(new出来的)实例化. 以谁做什么作为核心. public 放前面,private放后面(属性可以定义为priva ...

  4. BZOJ(begin) 1328 [Usaco2003 Open]Jumping Cows:贪心【波峰波谷模型】

    题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1328 题意: 给你一个长度为n的正整数序列. 可以选任意个数字,只能从左往右选. 偶数 ...

  5. springAOP原理以及概念

    需求:1.拦截所有业务方法2.判断用户是否有权限,有权限就让他执行业务方法,没有权限就不允许执行.(是否有权限是根据user是否为null作为判断依据) 思考: 我们该如何实现? 思路1: 我们在每个 ...

  6. PG替换字段中的回车与换行

    REPLACE(filed, CHR(10), '') //替换换行符 REPLACE(filed, CHR(13), '') //替换回车符

  7. Gym - 101673:B Craters (几何,求凸包)

    题意:给定几个圆,求最短的围合,把这几个包围起来,而且到圆的距离都不小于10. 思路:把每个圆的半径+10,边等分5000份,然后求凸包即可. #include<bits/stdc++.h> ...

  8. POJ3728The merchant (倍增)(LCA)(DP)(经典)(||并查集压缩路径?)

    There are N cities in a country, and there is one and only one simple path between each pair of citi ...

  9. java面试题04

    1.就你所熟悉的银行业务面说一下,越详细越好 银行经验:手机银行  网上银行经验  怎么支付  转账  了解基本业务 2.了解工作流的控制,审批流程以及帐务处理么? java中怎么实现工作流.审批流程 ...

  10. 1034 Head of a Gang (30)(30 分)

    One way that the police finds the head of a gang is to check people's phone calls. If there is a pho ...