Js基本数据类型常用方法扩展

http://blog.csdn.net/xuemoyao/article/details/19366755

1.    Array的contains方法

Array没有一个contains方法,在现实的应用场景是,有时候我们需要判断某一个值是否

在该数组中,这个时候一个contains方法就显得很有必要,具体实现如下:

//判断数组中是否包含某个元素

Array.prototype.contains = function (obj) {

var i = this.length;

while (i--) {

if (this[i] === obj) {

return true;

}

}

return false;

}

2.    String的contains方法

同样的问题也存在于String类型中,在js中同样也没有一个用来判断某一子串是否包

含在母字符串中的方法,具体实现如下:

//字符串中是否包含某字符串

String.prototype.contains = function contains(string, substr, isIgnoreCase) {

if (isIgnoreCase) {

this = this.toLowerCase();

string = string.toLowerCase();

substr = substr.toLowerCase();

}

var startChar = substr.substring(0, 1);

var strLen = substr.length;

for (var j = 0; j < string.length - strLen + 1; j++) {

if (string.charAt(j) == startChar)//

{

if (string.substring(j, j + strLen) == substr)//

{

return true;

}

}

}

return false;

}

3.    Date的addDays、addMonths、addYear、Format方法

熟悉C#的朋友,都会很熟悉也很享受关于DateTime的一系列的便利的操作,在js中并

没有像C#中那样便利的有关时间的操作,有时候不免会用到时间的加减等相关的交互,这里专门对Date类型进行了扩展,具体如下:

//添加天

Date.prototype.addDays = function (d) {

this.setDate(this.getDate() + d);

};

//添加周

Date.prototype.addWeeks = function (w) {

this.addDays(w * 7);

};

//添加月

Date.prototype.addMonths = function (m) {

var d = this.getDate();

this.setMonth(this.getMonth() + m);

if (this.getDate() < d)

this.setDate(0);

};

//添加年

Date.prototype.addYears = function (y) {

var m = this.getMonth();

this.setFullYear(this.getFullYear() + y);

if (m < this.getMonth()) {

this.setDate(0);

}

};

//日期的格式处理

//日期格式化

Date.prototype.Format = function (fmt) { //author: meizz

var o = {

"M+": this.getMonth() + 1,                 //月份

"d+": this.getDate(),                    //日

"h+": this.getHours(),                   //小时

"m+": this.getMinutes(),                 //分

"s+": this.getSeconds(),                 //秒

"q+": Math.floor((this.getMonth() + 3) / 3), //季度

"S": this.getMilliseconds()             //毫秒

};

if (/(y+)/.test(fmt))

fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

for (var k in o)

if (new RegExp("(" + k + ")").test(fmt))

fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

return fmt;

};

4.    Math.max.apply(null,array),求数组中的最大值

该方法主要用来求一个数组中的最大值,这种场景在实际的工作中也会经常用遇到。或

许会有朋友问到,为什么不直接调用Math.max()方法?需要注意的是Math.max()方法支持多个参数的传递,但是它不支持直接传递一个数组作为参数,但是所有的函数都有apply(作用域,参数)这样的一个方法,我们通过apply方法,间接的将数组作为参数,并且将数组中的每个值拆开来传递给了max方法,进而达到了求出最大值的需求。

时间: 2024-10-11 16:18:21

Js基本数据类型常用方法扩展的相关文章

【Javascript】JS常用方法扩展

1.格式化字符串操作 String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { var reg=new RegExp ("({"+key+"})"

JS中数据类型及原生对象简介

js是一种专门设计用来给网页增加交互性的编程语言,它的技术体系包含了一下几个方面: 1.JavaScript核心语言定义:包括数据类型,变量,常量,运算符,语句等. 2.原生对象和内置对象 3.浏览器对象BOM 4.文档对象类型DOM 5.事件处理模型 将js添加到文档中的方法有三种: 1.内嵌式 2.将js源文件通过<script>元素的src属性连接到XHTML文档中 3.脚本包含在XHTML事件处理属性中,例如onclick js的数据类型分为原始数据类型和引用数据类型: 一.原始数据类

ES6随笔--各数据类型的扩展(2)--数值

ES6随笔--各数据类型的扩展(2)--数值 二进制和八进制表示 二进制0b(或0B)表示:八进制0o(或0O)表示: 这两种字符串转换成十进制数值,使用Number()方法: Number('0b111') // 7 Number.isFinite(), Number.isNaN(); Number.isFinite()的参数如果不是数值,一律返回false, Infinity/-Infinity/NaN都返回false: Number.isNaN()对不是NaN的参数一律返回false; 这

ES6随笔--各数据类型的扩展(1) --字符串和正则

ES6随笔--基本数据类型的扩展 字符串 Unicode表示法 \uxxxx表示的Unicode如果码数超过了0xFFFF的范围,只要放进大括号内就能识别: codePointAt() 用codePointAt()可以准确识别码数超出0xFFFF范围的Unicode字符: for...of循环能够正确识别32位的UTF-16字符: String.fromCodePoint() 与codePointAt()作用刚好相反:根据传入的Unicede码数返回对应的字符: 遍历 for...of循环可以循

JS的数据类型

JS的数据类型大致分为两大块: 1.基本类型 2.引用类型 基本类型分为:number bolean string undefined null 引用类型分为:原生对象 内置对象 宿主对象

node.js 和 node-webkit C++扩展方法

构建node扩展的方法: 1,安装node.js 版本为0.10.24.msi 2,安装node-gyp, npm install -g node-gyp 3,构建 hello工程 cd 到 node-gyp-hello\src node-gyp configure node-gyp build 构建node-webkit扩展的方法: 1,安装node.js 版本为0.10.24.msi 2,安装nw-gyp, npm install -g  nw-gyp 3,构建 hello工程 cd 到 n

node.js对象数据类型

在这里复习下前端JS的数据类型:前端JS中的数据类型: 1.基本/原生/值类型 string.number.boolean.null.undefined 2.引用/对象类型    ES对象类型:String.Number.Boolean.Math.Date.RegExp.Object.Function.Error,Array,Global对象.    BOM对象类型:window.document.screen.history.location.navigator.event...    DOM

js数组操作常用方法(转自:http://www.jbxue.com/article/js/20224.html)

js数组操作常用方法,包括数组的创建.数组的元素的访问.数组元素的删除.数组的拷贝等. 原文参考自:http://www.jbxue.com/article/js/20224.html 在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像JSON数据是以数组的形式出现的,查阅了下相关JS中数组的操作一试果然很爽.记录下来.1.数组的创建 var arr

//js date对象常用方法

//js date对象常用方法//创建事件对象var now = new Date(); //不传参情况下默认返回当前时间//获取年var y=now.getFullYear();//获取月var m=now.getMonth()+1;//返回0-11//获取日var d= now.getDate();//获取小时var h =now.getHours();//获取分钟var i =now.getMinutes();//获取秒var s =now.getSeconds();//获取星期几var