JavaScript实用工具函数库:类型检测、字符串格式化与数组去重
作者:闭包旅人时间:2026-10-27 00:51:48浏览:71
本文整理了一套常用的JavaScript工具函数,涵盖类型检测、字符串模板格式化、日期格式化及数组去重等核心功能。通过Object.prototype.toString实现精准类型判断,支持数字索引与键名两种字符串替换模式,并提供灵活的日期格式化处理。此外,包含基于哈希表的数组去重算法及简易类创建方法,旨在提升前端开发效率与代码复用性。
JavaScript工具函数库实现
代码如下:
var YX = {
// 获取JavaScript内置数据类型的类型,返回值包括[Date, RegExp, Number, String, Array, Boolean, Function, null, undefined, Object]
getType : function(obj){
return obj == null ? obj + "" : Object.prototype.toString.call(obj).slice(8,-1);
}
// 创建一个简单的类
,createClass : function(){
return function(){
this.init.apply(this,arguments);
};
}
// 格式化字符串,例如:YX.format("{0},{1},haha",["hello","world"])
,format : function(str,params){
var reg = /{(\d+)}/g;
return str.replace(reg,function(match,val){
return params[~~val];
});
}
// 格式化字符串,例如:YX.format2("数学={数学},语文={语文},haha",{"数学":100,"语文":99})
,format2 : function(str,params){
var reg = /{([^{}]+)}/g;
return str.replace(reg,function(match,val){
return params[val];
});
}
// 格式化时间,例如:YX.format3(new Date,"yy-mm-dd H:M:S")
,format3 : function(date,patten){
var y = date.getFullYear(),mon = date.getMonth() + 1,d = date.getDate(),h = date.getHours(),min = date.getMinutes(),s = date.getSeconds()
,zero = function(o){return ("0"+o).slice(-2)}
,matchs = {"yy":y,"y":(y+"").slice(-2),"mm":zero(mon),"m":mon,"dd":zero(d),"d":d,"HH":zero(h),"H":h,"MM":zero(min),"M":min,"SS":zero(s),"S":s};
return patten.replace(/yy|y|mm|m|dd|d|HH|H|MM|M|SS|S/g,function(match){
return matchs[match];
});
}
// 数组去重,例如:YX.unique([1,1,"1",document.body,document.body])
,unique : function(arr){
var kv = {},len = arr.length,rs = [],t;
for(;len--;){
t = arr[len];
(kv[t]==undefined || kv[t]!==t) && (kv[t]=t,rs.push(t));
}
return rs;
}
}; 作者最新文章
怎么用 Promise 封装 JavaScript sleep 函数实现异步延时
2026-11-05 17:49:14
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
相关标签:
