underscore是很是好用的封装库,大小只有4KB,大多插件都是以underscore为基础;html
underscore分5大部分;集合;数组;函数;对象;工具数组
集合:集合就是伪数组,虽然长的和数组同样,可是不存在数组的属性和方法;dom
假设咱们须要数组的方法,他们没有,就须要人为的封装,还须要考虑兼容性,太麻烦了;异步
underscore就解决了这个问题; '_'为他的调用对象函数
1._.each(a,function(ele,index)) each的第一个参数是集合自己,第二个参数为函数,函数里两个参数(第一个参数:里面的元素,第二个参数:就是元素索引)工具
2._.map() 用法同_each() 可是他能够对里面元素进行加工,返回处理后的新数组;this
3._.find(arr,function(){}) 找到第一个知足条件的元素,没有为undefined;url
4._.filter() 找到全部知足条件的元素,返回新数组;插件
集合自己就是数组,因此数组也能够运用集合的方法;rest
数组:
1._.first() 返回数组第一个元素,传递参数n 返回从第一个到第n个参数;
2._.last() 返回数组中最后一个元素,传递参数n 返回从最后参数到n个参数;
3._.initial() 删除数组中最后一个元素,传递参数n 返回往前删除n个参数;
4._.rest() 删除数组中第一个参数,传递参数n,返回从前日后删n个参数;
5._.Object() 将数组转为对象,无论是几维;
函数:
1._.bind(fn,obj) 绑定完以后,返回绑定完后的函数fn,里面的this就是obj;
2._.delay(fn,5) 等待几秒后执行里面的函数;
3._.once() 这个函数只能调用一次,不准多个调用;
4._.after(n,fn) 在运行n次以后才会执行fn函数,(要保证,全部的异步都完成以后才执行)
5._before(n,fn) 建立一个函数fn调用不超过n次,若是超过n次,就再也不执行,返回最后一个结果,并被记住;
对象:
1._.keys() 检索obj中全部可枚举的属性
2._.allKeys() 将对象上属性和他原型上的属性,列举出来;
3._.values() 返回全部的属性值;
4._.extend() 将n个对象合并到一个对象上;
5._clone() 浅拷贝;
工具:
1._times(n.fn) 函数调用n次,函数有个形参,返回为索引;
2._.random() 返回最大值和最小值的随机整数,若是1个参数,返回0到那个参数的随机数;
3._.mixin() 若是你有特别好的方法,能够经过这个方法追加到 Underscore.js(1.9.1) 中文文档 里面哦;
4._.now() 时间戳;
5._template() 模板,预编译模板;
这里只是将部分计较重要的方法和你们进行了介绍,
详情请看 https://www.html.cn/doc/underscore/#each