更新常用的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拆开就像是 ...
随机推荐
- 无法远程连接阿里云的Mysql
问题描述:昨天使用阿里云安装了Mysql,无法远程连接,排除端口号错误.防火墙.Mysql权限问题后,最后发现是阿里云安全组规则限制问题: 解决方式: 1.访问阿里云控制台,实例-->管理 2. ...
- Zookeeper- Error contacting service. It is probably not running解决方案和原理
搭建启动Zookeeper集群出现Error contacting service. It is probably not running解决方案和原理 1.关闭防火墙 [root@srv01 bi ...
- linux命令学习笔记(46):vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动 进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行 ...
- ACM学习历程—BestCoder 2015百度之星资格赛1004 放盘子(策略 && 计算几何)
Problem Description 小度熊喜欢恶作剧.今天他向来访者们提出一个恶俗的游戏.他和来访者们轮流往一个正多边形内放盘子.最后放盘子的是获胜者,会赢得失败者的一个吻.玩了两次以后,小度熊发 ...
- 恋恋风辰 对于redis底层框架的理解(一)
近期学习了redis底层框架,好多东西之前都没听说过,算是大开眼界了. 先梳理下redis正常的通讯流程吧 首先服务器启动都有主函数main,这个main函数就在redis.c里 首先是initser ...
- HTTP协议详解之http请求分析
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...
- java 基础知识学习 priorityQueue
ArrayList:动态扩容(相对于数组),数组实现查询非常快但要求连续内存空间. 双向队列LinkedList:不需要像ArrayList一样创建连续的内存空间,它以链表的形式连接各个节点,但是 ...
- 反射:newInstance()的使用方式
通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance( ...
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
2017-03-16 11:23:29.601 1238 ERROR nova.compute.manager [instance: 3f195047-250a-4eb5-8da0-63bea6e26 ...
- WPF ChangePropertyAction中TargetName和TargetObject的区别
在wpf页面布局中经常用到ChangePropertyAction来更改属性,在这个里面有TargetName和TargetObject两个属性,都表示需要修改的控件名称,那么这两个有什么区别呢,通过 ...