jQuery统一了不一样浏览器之间的DOM操做的差别,让咱们能够简单地对DOM进行操做,而underscore则提供了一套完善的函数接口,让咱们更方便地在JavaScript中实现函数式编程。html
Underscore.js是一个很精干的库,压缩后只有6KB,它提供了100多个函数,弥补了js标准库的不足,包括经常使用的: map, filter, invoke,函数绑定, JavaScript模板功能,建立快速索引, 强类型相等测试等等。
java
这些方法大体上能够分红:集合类操做函数(collection)、数组操做函数(array)、高阶函数(function)、对象操做函数(object)和工具函数(utility)五大类。编程
jQuery在加载时,会把自身绑定到惟一的全局变量$
上,underscore与其相似,会把自身绑定到惟一的全局变量_
上,这也是为啥它的名字叫underscore(下划线)的缘由。数组
Underscor.js定义了一个下划线(_)对象,函数库的全部方法都属于这个对象。浏览器
underscore为集合类对象提供了一致的接口。集合类是指Array和Object,暂不支持Map和Set。函数式编程
underscore为Array
提供了许多工具类方法,能够更方便快捷地操做Array
。函数
提供了大量JavaScript自己没有的高阶函数。工具
在不一样的运行环境下,javaScript函数内部的变量所在的上下文是不一样的。这种特性会给程序带来不肯定性,为了解决这个问题,Underscore.js提供了两个方法,用来给函数绑定上下文。测试
_.bind(function, object, *arguments)
绑定函数 function 到对象 object 上, 也就是不管什么时候调用函数, 函数里的 this 都指向这个 object.
不管什么时候调用该函数, 函数里的 this 都指向这个 object。this
提供了大量针对Object的函数。
五:实用功能
六:Chaining链式语法