`
JavaSam
  • 浏览: 954752 次
  • 性别: 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 工具类

    JavaScript工具类函数库

    本资源是一个精心编写的JavaScript工具类函数库,包含了多种实用的日期处理、数值计算、字符串操作等工具函数。它提供了如日期格式化、天数判断、数组处理等功能,适用于前端开发中的各种场景。函数库采用ES6模块化...

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

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

    JavaScript开发工具 共享

    JavaScript开发工具是Web开发中的重要组成部分,它极大地提升了前端开发者的工作效率。JavaScript作为一种动态类型的脚本语言...通过持续学习和熟练掌握这些工具,可以不断提升开发者的生产力,打造出高质量的Web应用。

    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()); 第一个参数可以根据需要改

    JavaScript 函数库、工具类.zip

    JavaScript函数库和工具类是开发Web应用不可或缺的部分,它们提供了丰富的功能,可以帮助开发者更高效地编写代码。在"JavaScript 函数库、工具类.zip"这个压缩包中,包含了一个名为"xe-utils-master"的文件,这很...

    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那样大的类库

    js的md5加密工具类

    js的md5加密工具类

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

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

    JavaScript工具库

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

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

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

    代码…………………………

    - **重构工具**:支持重命名、提取方法、移动类等,帮助改进代码结构。 3. **代码生成** - **getter/setter**:快速生成属性的getter和setter方法,提高编码效率。 - **构造函数**:自动生成构造函数,根据类中...

    javascript开发工具

    JavaScript开发工具是编程者在创建和调试JavaScript代码时不可或缺的辅助软件。这些工具极大地提高了开发效率,减少了因语法错误或逻辑问题导致的错误。在本文中,我们将深入探讨JavaScript开发工具的重要性和它们...

    javascript入门教程(关注持续更新)

    javascript

Global site tag (gtag.js) - Google Analytics