Underscore.js和jQuery是否相辅相成?

我刚开始学习JavaScript,偶然发现了Underscore.js和jQuery 。 Underscore看起来非常酷,但我不知道jQuery是否已经提供类似于Underscore的function。 那么,两者都值得吗?

取自下划线网站:

这跟jQuery的tux和Backbone.js的吊带一起。

Underscore更适合于数据操作,并将许多Ruby方法带入JavaScript。 有一些交叉,但不足以使它们相互排斥。

  • jQuery会照顾你的大部分操作
  • backbone.js将帮助您组织所有的代码,并为您的js应用程序提供一些结构(mvc模式)
  • underscore.js会给你真正有用的低级工具。 我真的不需要这个库,直到我真的进入js应用程序(这也是backbone.js的要求)

Underscore总共提供了60个函数来处理数据/代码。 一致认为,许多function存在于其他库,如jQuery,Prototype或script.aculo.us。 例如,像jQuery中存在像map,find,filter或toArray这样的函数。 这些也在下划线。 这是为了使图书馆独立于jQuery。

何时使用Underscore?

目前,它被广泛用于Backbone.js使用MVC架构来创build一个页面的JavaScript Web应用程序。 underscore.js最重要的能力是模板的能力(jQuery不能这样做)。 这个库有许多其他有用的function,独立于其他Javascript库。

在下面查找由Underscore提供的function列表:

集合:每个map,reduce,reduceRight,find,filter,reject,all,any,include,invoke,pluck,max,min,sortBy,groupBy,sortedIndex,shuffle,toArray,size

数组:首先,初始,最后,rest,紧凑,平坦,没有,联盟,交集,区别,uniq,zip,indexOf,lastIndexOf,范围

function:绑定,绑定全部,记忆,延迟,延迟,节stream,去抖,一次,后,换行,撰写

对象:键,值,函数,扩展,默认,克隆,tap,isEqual,isEmpty,isElement,isArray,isArguments,isFunction,isString,isNumber,isBoolean,isDate,isRegExp,isNaN,isNull,isUndefined

Utitity: noConflict,identity,times,mixin,uniqueId,escape,template

如果你担心重叠,而不需要像JQuery AJAX这样的东西,那么你可以考虑只使用名为Sizzle的JQueryselect器引擎。

http://sizzlejs.com/

请注意,这不是所有的项目,通过使用Sizzle和Underscore你将失去一些JQueryfunction(如AJAX),你需要考虑你真正需要你的具体应用程序。