`
JavaSam
  • 浏览: 952098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript工具类(持续更新……)

 
阅读更多
/**
 * @author wsf javascript工具类
 */
;
(function (win){
	/**
	 * js工具类
	 */
	function jsUtils (){
		//TODO 可以初始化一些必要的信息
	}
	/**
	 * utils 原型对象
	 */
	jsUtils.prototype = {
			constructor:jsUtils,
			//判断对象类型
			_is:function (type,val){
				return Object.prototype.toString.call(val) == '[object '+type+']';
			},
			//是否是数组
			isArray:function (val){
				return this._is("Array", val);
			},
			//是否是arguments对象
			isArgs:function (val){
				return this._is("Arguments", val);
			},
			//是否是函数
			isFunction:function (val){
				return this._is("Function", val);
			},
			//是否是正则表达式
			isRegExp:function (val){
				return this._is("RegExp", val);
			},
			//是否是本地JSON对象
			isJSON:function (val){
				return window.JSON&&this._is("JSON", val);
			},
			//是否是undefined
			isUndefined:function (val){
				return typeof val == "undefined";
			},
			//是否是空
			isNull:function (val){
				return val == null;
			},
			//判断是否为空或nul
			isBlank:function (val){
				if(this.isNull(val)||this.isUndefined(val)) return true;
				var _v = val.trim ? val.trim():val.replace(/^(\s*)|(\s*$)/g,"");
				return _v.length==0;
			},
			//null或空字符窜或undefined
			isEmpty:function (val){
				return this.isBlank(val);
			},
			//函数柯里化
			curry:function (fn){
				var args = Array.prototype.slice.call(arguements,1);
				return function (){
					var inArgs = Array.prototype.slice.call(arguements);
					var finalArgs = args.concat(inArgs);
					return fn.apply(null,finalArgs);
				}
			},
			//绑定事件
			bind:function (fn,context){
				var args = Array.prototype.slice.call(arguements,2);
				return function (){
					var inArgs = Array.prototype.slice.call(arguements);
					var finalArgs = args.concat(inArgs);
					return fn.apply(context,finalArgs);
				}
			},
			//函数节流
			throttle:function (method,interval,context){
				if(typeof method.tid != "undefined")
				   clearTimeout(method.tid);//清除计时器id
				method.tid = setTimeout(function (){
					method.call(context);
				},interval);
			},
			//定时器
			timer:function (fn,interval,onOrmore){
				if(this.isFunction(fn)){
					var _f = this.isEmpty(onOrmore);//是否执行多次
					if(_f||(!_f&&onOrmore == "one")){
						fn.timerid = setTimeout(fn,interval);
					}else{
						//执行多次
						fn.timerid = setTimeout(function (){
							fn();
							setTimeout(arguments.callee,interval);
						},interval);
					}
				}else{
					throw new Error("定时器参数有误!");
				}
			},
			//获得url参数信息
			getUrlQueryParam:function (_url,key){
				if (_url.lastIndexOf("?") != -1) {
					var queryStr = _url.substring(_url.lastIndexOf("?") + 1, _url.length);
					if(!key)
						return queryStr;// 返回所有参数
					else{
						var params  = queryStr.split("&");
						for(var j = 0 ;j < params.length;j++){
							var tmp = params[j].split("=");
							if(tmp[0]==key){
								return tmp[1];
								break;
							}
						}
					}
					
				}
			},
			//javascript事件工具类
			eventUtil:{
				//添加事件
				addHandler:function (element,type,handler){
					if(element.addEventListener){
						element.addEventListener(type,handler,false);//ie9+,ff,chrome
					}else if(element.attachEvent){
						element.attachEvent("on"+type,handler);//ie8以下
					}else{
						element["on"+type] = handler;//其他
					}
				},
				//移除事件
				removeHandler:function (element,type,handler){
					if(element.removeEventListener){
						element.removeEventListener(type,handler,false);
					}else if(element.detachEvent){
						element.detachEvent("on"+type,handler);
					}else{
						element["on"+type] = null;
					}
				},
				//获取event对象
				getEvent:function (event){
					return event?event:w.event;
				},
				//获取target对象
				getTarget:function (event){
					return event.target || event.srcElement;
				},
				//阻止冒泡
				preventDefault:function (event){
					if(event.preventDefault){
						event.preventDefault();
					}else{
						event.returnValue = false;
					}
				}
			},
			//js自定义事件
			customEvent:{
				//创建自定义对象
				create:function (){
					//event对象
					function Event(){
						this.handlers={};//事件集合 
					};
					//自定义事件原型对象
					Event.prototype={
							//构造函数
							constructor:Event,
							//注册事件
							addHandler:function (type,handler){
								if(typeof this.handlers[type] == "undefined"){
									this.handlers[type] = [];
								}
								this.handlers[type].push(handler);//注册事件
							},
							//触发事件
							trigger:function (event){
								if(!event.target){
									event.target = this;
								}
								if(this.handlers[event.type] instanceof Array){
									var handlers = this.handlers[event.type];
									for(var i = 0 ,len = handlers.length;i<len;i++){
										handlers[i](event);//调用
									}
								}
							},
							//移除事件
							removeHandler:function (type,handler){
								if(this.handlers[type] instanceof Array){
									var handlers  = this.handlers[type];
									for(var i = 0,len = handlers.length;i<len;i++){
										if(handlesr[i] == handler){
											break;
										}
									}
									handlers.splice(i,1);//移除
								}
							}
					}
					
					return new Event();//返回自定义事件对象
				}
			
			},
			//去掉千分号
			removeThousandSign:function (num){
				if(null != num)
			       return  num.replace(/,/g,"");

			},
			//添加千分号
			addThousandSign:function (num){
				num = num + "";
				num = removePerThousandSign(num);
				num = parseFloat(num).toFixed(2);//四舍五入保留两位小数
				if(isNaN(num))
				   return "0.0";
				var flag = num.indexOf(".") > 0;//是否有小数点
			    var regexStr = /(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
			    var resultStr = num.replace(regexStr, "$1,");
			    return flag ? resultStr : resultStr+".00";
			}
	}
	win.jsUtils = jsUtils;//赋给全局对象
})(window);

 

 

0
0
分享到:
评论

相关推荐

    JavaScript日历插件代码………………

    JavaScript日历插件代码………………………………………………………………………………

    自定义javascript 工具类

    自定义javascript 工具类

    JS(javascript)-md5加密工具类

    JavaScript中的MD5加密工具类是用于对数据进行安全哈希的一种方法,广泛应用于密码存储、数据完整性校验等场景。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的输入转化为固定长度的...

    真实项目中用到的javascript工具类

    真实项目中用到的javascript工具类,真实项目中用到的javascript工具类

    JSP动态网站开发 第1章 JSP使用基础第2章 HTML与CSS第3章 JavaScript脚本编程…………

    5. **AJAX(Asynchronous JavaScript and XML)**:异步数据传输,实现页面无刷新更新。 6. **ES6新特性**:包括let、const、箭头函数、模板字符串、Promise等,提高了JavaScript的编写效率和可读性。 本教程的...

    JavaScript工具类,小驼峰转大写下划线与大写下划线转小驼峰

    JavaScript工具类,可以实现小驼峰命名转大写下划线命名与大写下划线命名转小驼峰命名

    javascript 日期工具类

    导入js文件 用法 var newDate=DateUtil.Format("yyyy/MM/dd",new Date()); 第一个参数可以根据需要改

    JSON对象转换工具类(JavaScript端)

    挺好用的一个JSON转换工具包,含Java端与JavaScript端的JSON对象转换工具类,使用时直接导入至项目源文件中并调用相关类及方法即可。此文件为JavaScript端使用,如需Java端的请移步我的另一上传资源“JSON对象转换...

    毕业设计:基于Springboot的电子商务系统(源码 + 数据库 + 说明文档)

    2.4 JavaScript及Vue的介绍………………………………………………14 2.5MySQL数据库的介绍………………………………………………18 3需求分析……………………………………………12  3.1功能需求分析………………...

    Netbit Browser嵌入式浏览器(论文+源码)

    3.2 JavaScript Engine …………………………………………18 3.3 JavaScript与浏览器接合 ………………………………… 19 3.4 浏览器消息响应 …………………………………………… 21 第四章 Linux程序开发技术...

    AJAX工具类,简单实用

    一个简单实用的javascript AJAX 工具类; 简单应用的时候, 你不需导入像prototype,jQuery那样大的类库

    前端跨界开发指南:JavaScript工具库原理解析与实战.docx

    在前端开发中,JavaScript 工具库扮演着不可或缺的角色,它们简化了开发流程,提高了开发效率。JavaScript 工具库如jQuery、React、Vue等,它们的核心原理在于对JavaScript原生API的封装和优化,提供了诸如DOM操作、...

    js的md5加密工具类

    js的md5加密工具类

    好用的javascript调试工具

    JavaScript是Web开发中不可或缺的一部分,而调试工具则是开发者在创建高效、无错代码时的得力助手。本文将深入探讨一些优秀的JavaScript调试工具,帮助您更好地理解和使用它们。 一、Chrome DevTools Chrome浏览器...

    Aleppo提供一些采用JavaScript编写的一些常用工具类

    在JavaScript开发过程中,工具类(Utility Classes)是程序员经常使用的代码模块,它们包含了一系列静态方法,可以方便地处理各种常见的编程任务。"Aleppo"项目就是这样一个资源库,它为开发者提供了一些用...

    JavaScript工具库

    另一个值得一提的工具库是Prototype,它专注于提供类和面向对象的功能,使得JavaScript开发更加接近传统的面向对象编程。Prototype也有良好的浏览器兼容性,并且在Ajax和DOM操作方面表现优秀。 再者,Underscore.js...

    一个JS加密工具类MD5 SHA

    js javascript 加密 MD5 SHA

    IE的JavaScript调试工具

    JavaScript是Web开发中不可或缺的一部分,而作为曾经主流的浏览器,Internet Explorer(IE)提供了自己的JavaScript调试工具,使得开发者能够有效地追踪和解决代码中的问题。在IE的JavaScript调试工具中,有多个关键...

    Echarts-java资源工具类

    综上所述,Echarts-java资源工具类是一个帮助Java开发者更方便地生成和使用Echarts图表的工具,它结合了Echarts的JavaScript库和Java的封装库,实现了前后端的有效协同,提升了数据可视化的开发效率。通过理解和运用...

    JavaScript权威指南第五版(JavaScript_The_Definitive_Guide_5th.chm)

     这本最畅销的JavaScript参考书的第四版已经进行了全面的更新,其中涵盖JavaScript 1.5(ECMAScript Version 3)的详细介绍。它还提供了W3C DOM标准(1级和2级)的完整内容,为了向后兼容,本书保持了遗留的O级DOM的...

Global site tag (gtag.js) - Google Analytics