智慧建站平台,千套网站模板,免费随心选!

您现在的位置: 首页>>网站教程

拥抱 Underscore.js 的温暖

来源: 发布时间:2023-08-28热度:853 ℃
随着 JavaScript 慢慢移出浏览器,出现了一些可以显着提高 JavaScript 稳健性的工具。其中一个工具称为 Underscore.js,这就是我们今天要介绍的工具。让我们开始吧!认识 U···

拥抱 underscore.js 的温暖

随着 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://ezhuoer.com