前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript 中常用和必备的一些工具类函数

JavaScript 中常用和必备的一些工具类函数

作者头像
跟着飞哥学编程
发布2022-11-18 14:01:44
发布2022-11-18 14:01:44
47400
代码可运行
举报
运行总次数:0
代码可运行

目录

1、判断是否为数值函数 isNumber

2、计算字符串长度 calculateStrLengh

3、转换日期格式 changeDateFormat

4、节流函数 throttle

5、防抖函数 debounce

6、获取地址栏参数 GetUrlParam

7、判断两个 Oject 是否相等 isEqualObject 

8、判断 Object 是否为空 isEmptyObject

9、判断字符串是否存在 isExist

10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam


1、判断是否为数值函数 isNumber

代码语言:javascript
代码运行次数:0
运行
复制
function isNumber(val){
	if(val==""){
		return false;
	}
	if(val.length>1){
		if(val.substr(val.length-1, val.length)=="."){
			var len = val.split(".").length-1;
			if(len>1){
				return false;
			}
			val = val.substr(0, val.length-1);
		}
	}
	
	var regPos = /^\d+(\.\d+)?$/; 
	var regNeg = /^((([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; 
	if(regPos.test(val) || regNeg.test(val)) {
		return true;
	}
	return false;
}

2、计算字符串长度 calculateStrLengh

代码语言:javascript
代码运行次数:0
运行
复制
//计算字符长度(一个汉字2个字符)
function calculateStrLengh(str){
	var len=0;
	if(!isExist(str)){
		return 0;
	}
	for (var i=0; i<str.length; i++) {
		var c = str.charCodeAt(i);
		//单字节加1
		if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
			len++;
		}
		else {
			len+=2;
		}
	}
	return len;
}

3、转换日期格式 changeDateFormat

代码语言:javascript
代码运行次数:0
运行
复制
//转换日期格式(时间戳转换为datetime格式)
function changeDateFormat(cellval, hms) {
	var dateVal = cellval + "";
	if (cellval != null) {
		var date = new Date(parseInt(dateVal.replace("/Date(", "").replace(")/", ""), 10));
		var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
		var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();

		var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
		var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
		var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
		if(hms){
			return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;
		}else{
			return date.getFullYear() + "-" + month + "-" + currentDate;
		}
	}
}

4、节流函数 throttle

代码语言:javascript
代码运行次数:0
运行
复制
/**  
 * 节流  
 */  
function throttle(fn, wait = 500, isImmediate = false) {  
  let flag = true;  
  if (isImmediate) {  
    return function() {  
      if (flag) {  
        fn.apply(this, arguments);  
        flag = false;  
        setTimeout(() => {  
          flag = true  
        }, wait)  
      }  
    }  
  }  
  return function() {  
    if (flag == true) {  
      flag = false  
      setTimeout(() => {  
        fn.apply(this, arguments)  
        flag = true  
      }, wait)  
    }  
  }  
}  

5、防抖函数 debounce

代码语言:javascript
代码运行次数:0
运行
复制
//防抖  
function debounce(fn, wait, isImmediate) {  
  let timerId = null;  
  let flag = true;  
  if (isImmediate) {  
    return function() {  
      clearTimeout(timerId);  
      if (flag) {  
        this[fn]() ;  
        flag = false  
      }  
      timerId = setTimeout(() => {  
        flag = true  
      }, wait)  
    }  
  }  
  return function() {  
    clearTimeout(timerId);  
    timerId = setTimeout(() => {  
      this[fn]()  
    }, wait)  
  }  
}

6、获取地址栏参数 GetUrlParam

代码语言:javascript
代码运行次数:0
运行
复制
//js获取地址栏参数  name为参数名
function GetUrlParam (name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
}

7、判断两个 Oject 是否相等 isEqualObject 

代码语言:javascript
代码运行次数:0
运行
复制
// 判断两个object是否相等
function isEqualObject (obj1, obj2) {
  var o1 = obj1 instanceof Object;
  var o2 = obj2 instanceof Object;
  if (!o1 || !o2) { /*  判断不是对象  */
    return obj1 === obj2;
  }

  if (Object.keys(obj1).length !== Object.keys(obj2).length) {
    return false;
    //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
  }

  for (var attr in obj1) {
    var t1 = obj1[attr] instanceof Object;
    var t2 = obj2[attr] instanceof Object;
    if (t1 && t2) {
      return diff(obj1[attr], obj2[attr]);
    } else if (obj1[attr] !== obj2[attr]) {
      return false;
    }
  }
  return true;
}

8、判断 Object 是否为空 isEmptyObject

代码语言:javascript
代码运行次数:0
运行
复制
//判断object为空
function isEmptyObject (e) {
  for (var t in e)
    return !1;
  return !0
}

9、判断字符串是否存在 isExist

代码语言:javascript
代码运行次数:0
运行
复制
function isExist (str) {
  if (str !== null && str !== "undefined" && str !== "" && typeof str != "undefined" && !(typeof (str) == "string" &&
      str
      .split(" ").join("").length == 0)) {
    return true;
  } else {
    return false;
  }
}

10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam

代码语言:javascript
代码运行次数:0
运行
复制
// 判断是否为IE8
var DEFAULT_VERSION = 8.0;
var ua = navigator.userAgent.toLowerCase();
var isIE = ua.indexOf("msie") > -1;
var safariVersion;
if (isIE) {
	safariVersion = ua.match(/msie ([\d.]+)/)[1];
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、判断是否为数值函数 isNumber
  • 2、计算字符串长度 calculateStrLengh
  • 3、转换日期格式 changeDateFormat
  • 4、节流函数 throttle
  • 5、防抖函数 debounce
  • 6、获取地址栏参数 GetUrlParam
  • 7、判断两个 Oject 是否相等 isEqualObject 
  • 8、判断 Object 是否为空 isEmptyObject
  • 9、判断字符串是否存在 isExist
  • 10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档