随着JavaScript慢慢移出浏览器,出现了一些可以显着提高JavaScript稳健性的工具。
其中一个工具称为Underscore.js,这就是我们今天要介绍的工具。让我们开始吧!
认识Underscore.js
那么Underscore到底是做什么的?
Underscore是一个JavaScript实用工具库,它提供了许多您在Prototype.js(或Ruby)中所期望的函数式编程支持,但没有扩展任何内置JavaScript对象。使用Python或Ruby工作的好处之一是像map这样的奇特结构,它让生活变得更加轻松。遗憾的是,当前版本的JavaScript在低级实用程序方面相当简陋。正如您在上面所读到的,Underscore.js是一个漂亮的小型JavaScript库,它以仅4kb的大小带来了数量惊人的功能。下划线的实际应用“关于图书馆的废话已经够多了”,我能听到你说。你是对的!在我继续我的大喊大叫之前,让我们先看看Underscore的运行情况。假设您有一组随机的测试分数,并且您需要一个包含90+分数的列表。您通常会写这样的内容:varscores=[84,99,91,65,87,55,72,68,95,42],topScorers=[],scoreLimit=90;for(i=0;iscoreLimit){topScorers.push(scores[i]);}}console.log(topScorers);它非常简单,即使进行了优化,对于我们想要做的事情来说也相当冗长。让我们看看接下来可以使用Underscore实现什么目标。varscores=[84,99,91,65,87,55,72,68,95,42],topScorers=[],scoreLimit=90;topScorers=_.select(scores,function(score){returnscore>scoreLimit;});console.log(topScorers);我不了解你,但我只是有一种书呆子气。这是一些令人难以置信的简洁和可读的代码。很好,但我真的需要这个吗?嗯,这完全取决于您想要做什么。如果您对JavaScript的使用仅限于玩弄DOM,那么答案大多是否定的,因为jQuery可以完成您想做的大部分事情。是的。
另一方面,如果您正在处理非DOM代码甚至复杂代码,请考虑MVC、前端代码,Underscore绝对是一个福音。
虽然该库公开的一些功能正在慢慢进入ECMA规范,但它并非在所有浏览器中都可用,并且让您的代码跨浏览器工作本身就是另一个噩梦。Underscore为您提供了一组很好的抽象,可以在任何地方使用。
如果您是一个以性能为导向的人(您应该如此),Underscore会回退到本机实现(如果可用),以确保性能尽可能最佳。
开始使用
只需在此处获取源代码,将其包含在您的页面中即可。
如果您期待一个大型的设置过程,那么您将会非常失望。只需在此处获取源代码,将其包含在您的页面中即可。
Underscore在全局范围内通过单个对象创建并公开其所有功能。该对象是标题下划线字符_。
如果您想知道,是的,这与jQuery使用美元[$]符号的方式非常相似。就像jQuery一样,您可以重新映射此字符,以防遇到冲突。或者,如果您像我一样对波形符有一种非理性的喜爱。
函数式还是面向对象?
虽然该库的官方营销宣传声称它添加了函数式编程支持,但实际上还有另一种做事方式。
让我们以之前的代码为例: