更新常用的js工具函数
在手机调试时打印代码
<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
 更新常用的js工具函数的更多相关文章
- 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)
		/*华丽------------------------------------------------------------------------------------------------ ... 
- 常用的js工具函数
		JS选取DOM元素的方法注意:原生JS选取DOM元素比使用jQuery类库选取要快很多1.通过ID选取元素document.getElementById('myid');2.通过CLASS选取元素do ... 
- 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 ... 
- JS 工具函数 方法(其中js的crc32和php的crc32区别)
		var util = {}; util.indexOf = function (array, item) { for (var i = 0; i < array.length; i++) { i ... 
- JS工具函数汇总
		备注:http://phpjs.org/ 这个站点把PHP常用的方法用js实现了,推荐一下 1.从数组中随机获取几个不重复项 //从一个给定的数组arr中,随机返回num个不重复项 function ... 
- (总结)工作中常用的js自定义函数——日期时间类
		//设置时间类 var Wsdatatime = function(){ this.today = (new Date()).getTime(); //当前时间 } Wsdatatime.protot ... 
- JavaScript常用工具函数
		检测数据是不是除了symbol外的原始数据 function isStatic(value) { return ( typeof value === 'string' || typeof value ... 
- 你要的几个JS实用工具函数(持续更新)
		今天,我们来总结下我们平常使用的工具函数,希望对大家有用.1.封装fetch 源码: /** * 封装fetch函数,用Promise做回调 * @type {{get: (function(*=)) ... 
- 工作中常用的JS函数整理分享(欢迎大家补充)
		今年在渣X工作整理的常用JS函数 今年来了渣X工作,我所在这个部门分工很奇怪,CSS竟然有专门的人在搞,开发PHP的人员需要处理JS,以至于有时候开发起来不是那么得心应手,感觉把JS和CSS拆开就像是 ... 
随机推荐
- redis持久化【转】
			Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ... 
- python练习1(简单爬虫)
			做一个简单的练习 目标:爬取中文小说 目标网站:http://www.biqule.com/book_58/26986.html 只爬取正文部分. 使用requests库来获取网页信息,使用re库正则 ... 
- L89
			His voice was hoarse after several hours' speech.Attributive adjectives precede the noun.I gave the ... 
- Multiple webcams on ZoneMinder
			Monitoring a 3D Printer I have tidied my new workshop and I am starting to play with 3d-printing aga ... 
- 模拟jQuery的一些功能
			//getStyle function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; } else{ ... 
- C++正确的cin输入
			void test1(void) { int number; cout << ">> pls input a integer number:"; while ... 
- 无废话WCF系列教程 -- 李林峰
			李林峰的无废话WCF入门教程 无废话WCF入门教程一[什么是WCF] 无废话WCF入门教程二[WCF应用的通信过程] 无废话WCF入门教程三[WCF的宿主] 无废话WCF入门教程四[WCF的配置文件] ... 
- Nuget-QRCode:jquery-qrcode
			ylbtech-Nuget-QRCode:jquery-qrcode 1.返回顶部 1. <!DOCTYPE html> <html> <head> <tit ... 
- hdu水仙花
			水仙花数 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission ... 
- 02_mysql卸载和安装
			如果只是随便地反安装/uninstall之后,在文件系统或者是注册表里面可能会残留一些东西,这些东西如果不及时清除掉,再装可能会出现问题,你新装的会用不了. #Path to installation ... 
