皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

编写自己的代码库(javascript常用实例的实现与封装)

1.前言

因为公司最近项目比较忙,没那么多空余的事件写文章了,所以这篇文章晚了几天发布。但是这也没什么关系,不过该来的,总是会来的。
好了,其他的不多说的,大家在开发的时候应该知道,有很多常见的实例操作。比如数组去重,关键词高亮,打乱数组等。这些操作,代码一般不会很多,实现的逻辑也不会很难,下面的代码,我解释就不解释太多了,打上注释,相信大家就会懂了。但是,用的地方会比较,如果项目有哪个地方需要用,如果重复写的话,就是代码冗余,开发效率也不高,复用基本就是复制粘贴!这样是一个很不好的习惯,大家可以考虑一下把一些常见的操作封装成函数,调用的时候,直接调用就好!
源码都放在github上了,大家想以后以后有什么修改或者增加的,欢迎大家来star一下ec-do

2.字符串操作

2-1去除字符串空格

2-2字母大小写切换

2-3字符串循环复制

2-4字符串替换

2-5替换*

2-6检测字符串

2-7检测密码强度

2-8随机码(toString详解

2-9查找字符串

可能标题会有点误导,下面我就简单说明一个需求,在字符串'sad44654blog5a1sd67as9dablog4s5d16zxc4sdweasjkblogwqepaskdkblogahseiuadbhjcibloguyeajzxkcabloguyiwezxc967'中找出’blog’的出现次数。代码如下

3.数组操作

3-1数组去重

这个方法是在太多了,我之前写的文章(js数组操作–使用迭代方法替代for循环,js关键词变色,数组打乱,数组去重的实现和封装)也有提到,我今天这里就写一种之前没用过的方法。

3-2数组顺序打乱

3-3数组最大值最小值

3-4数组求和,平均值

3-5从数组中随机获取元素

3-6返回数组(字符串)一个元素出现的次数

3-7返回数组(字符串)出现最多的几次元素和出现次数

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2])
默认情况,返回所有元素出现的次数
编写自己的代码库(javascript常用实例的实现与封装)

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],3)
传参(rank=3),只返回出现次数排序前三的
编写自己的代码库(javascript常用实例的实现与封装)

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],null,1)
传参(ranktype=1,rank=null),升序返回所有元素出现次数
编写自己的代码库(javascript常用实例的实现与封装)

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],3,1)
传参(rank=3,ranktype=1),只返回出现次数排序(升序)前三的
编写自己的代码库(javascript常用实例的实现与封装)

3-8得到n1-n2下标的数组

3-9筛选数组

4.基础DOM操作

这个部分代码其实参考jquery的一些函数写法,唯一区别就是调用不用,参数一样.
比如下面的栗子

4-1检测对象是否有哪个类名

4-2添加类名

4-3删除类名

4-4替换类名(“被替换的类名”,”替换的类名”)

4-5获取兄弟节点

4-6设置样式

4-7设置文本内容

4-8显示隐藏

5.其他操作

5-1cookie

5-2清除对象中值为空的属性

5-3现金额大写转换函数

5-4获取,设置url参数

5-5随机返回一个范围的数字

5-6随进产生颜色

//这种写法,偶尔会有问题。大家得注意哦
//Math.floor(Math.random()*0xffffff).toString(16);
编写自己的代码库(javascript常用实例的实现与封装)

5-7Date日期时间部分

5-8适配rem

这个适配的方法很多,我就写我自己用的方法。大家也可以去我回答过得一个问题那里看更详细的说明!移动端适配问题

6.封装成形

写了这么多的操作,小伙伴应该发现了一问题,全局函数太多了

可能有小伙伴会有疑问,这样封装,调用有点麻烦,为什么不直接在原型上面封装,调用方便。比如下面的栗子!

所以在原生对象原型的修改很不推荐!至少很多的公司禁止这样操作!

7.小结

这篇文章,写了很久了,几个小时了,因为我写这篇文章,我也是重新改我以前代码的,因为我以前写的代码,功能一样,代码比较多,现在是边想边改边写,还要自己测试(之前的代码for循环很多,现在有很多简洁的写法代替)。加上最近公司比较忙,所以这一篇文章也是花了几天才整理完成。
源码都放在github上了,大家想以后以后有什么修改或者增加的,欢迎大家来star一下ec-do
我自己封装这个,并不是我有造轮子的习惯,而是:
1,都是一些常用,但是零散的小实例,网上基本没有插件。
2,因为零散的小实例,涉及到的有字符串,数组,对象等类型,就算找到插件,在项目引入的很有可能不止一个插件。
3.都是简单的代码,封装也不难。维护也简单。
废话就不多说了,上面的只是我自己在开发中常用到,希望能帮到小伙伴们,最理想就是这篇文章能起到一个抛砖引玉的作用,就是说,如果觉得还有什么操作是常用的,或者觉得我哪里写得不好的,也欢迎指出,让大家相互帮助,相互学习。

转自 http://web.jobbole.com/91833/