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