转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826065.html

underscore是什么——它是一个js函数库

jQuery统一了不同浏览器之间的DOM操作的差异,让我们可以简单地对DOM进行操作,而underscore则提供了一套完善的函数接口,让我们更方便地在JavaScript中实现函数式编程。

Underscore.js是一个很精干的库,压缩后只有6KB,它提供了100多个函数,弥补了js标准库的不足,包括常用的: mapfilterinvoke,函数绑定, JavaScript模板功能,创建快速索引, 强类型相等测试等等。

这些方法大致上可以分成:集合类操作函数(collection)、数组操作函数(array)、高阶函数(function)、对象操作函数(object)和工具函数(utility)五大类。

underscore怎么用

jQuery在加载时,会把自身绑定到唯一的全局变量$上,underscore与其类似,会把自身绑定到唯一的全局变量_上,这也是为啥它的名字叫underscore(下划线)的原因。

    Underscor.js定义了一个下划线(_)对象,函数库的所有方法都属于这个对象

$(选择器)操作DOM,而_.fun()调用函数。

一:Collections操作函数

underscore为集合类对象提供了一致的接口。集合类是指Array和Object,暂不支持Map和Set。

二:Arrays操作函数

underscore为Array提供了许多工具类方法,可以更方便快捷地操作Array

三:Functions高阶函数

提供了大量JavaScript本身没有的高阶函数。

绑定运行环境和参数

在不同的运行环境下,javaScript函数内部的变量所在的上下文是不同的。这种特性会给程序带来不确定性,为了解决这个问题,Underscore.js提供了两个方法,用来给函数绑定上下文。

bind:十分强大,用的比较多

_.bind(function, object, *arguments) 

绑定函数 function 到对象 object 上, 也就是无论何时调用函数, 函数里的 this 都指向这个 object.

无论何时调用该函数, 函数里的 this 都指向这个 object。

四:Objects操作函数

提供了大量针对Object的函数。

五:实用功能

六:Chaining链式语法

Underscore——JS函数库的更多相关文章

  1. Underscore.js 函数节流简单测试

    函数节流在日常的DOM界面数据交互中有比较大的作用,可以减少服务器的请求,同时减少客户端的内存影响 Underscore.js  本省就包含了函数节流的处理函数 _.throttle 和 _.debo ...

  2. 在easyUI开发中,出现jquery.easyui.min.js函数库问题

    easyUI是jquery的一个插件,是民间的插件.easyUI使用起来很方便,里面有网页制作的最重要的三大方块:javascript代码.html代码和Css样式.我们在导入easyUI库后,可以直 ...

  3. underscore.js 一个强大的js函数库

    Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, re ...

  4. JS函数库Underscore.js

    http://underscorejs.org/ http://www.css88.com/doc/underscore/ http://www.bootcss.com/p/underscore/

  5. 我的js函数库(持续更新)

    常用js初始化函数 function id(obj) { return document.getElementById(obj); } function bind(obj, ev, fn) { if ...

  6. Underscore.js工具库

    Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:“如果我面对一个空白的 HTML ...

  7. 苹果浏览器Safari对JS函数库中newDate()函数中的参数的解析中不支持形如“2020-01-01”形式

    苹果浏览器safari对new Date('1937-01-01')不支持,用.replace(/-/g, "/")函数替换掉中划线即可 如果不做处理,会报错:invalid da ...

  8. js函数库-D3

    推荐: https://www.cnblogs.com/createGod/p/6884629.html

  9. underscore.js源码研究(8)

    概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...

随机推荐

  1. 【原】无脑操作:Markdown可以这样玩

    一.背景: Markdown是一种纯文本格式的标记语言.通过简单的标记语法,可以使普通文本内容具有一定的格式.因为语法简单明了.功能又比纯文本强大,所以很适合作为开发人员的书写工具.Markdown的 ...

  2. POJ 1276 Cash Machine(完全背包模板题)

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44409   Accepted: 16184 Description A B ...

  3. JavaScript核心知识点

    一.JavaScript 简介 一.JavaScript语言的介绍:JavaScript是基于对象和原型的一种动态.弱类型的脚本语言 二.JavaScript语言的组成:JavaScript是由核心语 ...

  4. DataTable Linq Group Count where写法

    DataTable dataTable = new DataTable(); dataTable.Columns.Add("username", typeof(string)); ...

  5. springboot处理date参数

    前言 最近在后台开发中遇到了时间参数的坑,就单独把这个问题提出来找时间整理了一下: 正文 测试方法 bean代码: public class DateModelNoAnnotation { priva ...

  6. Azkaban 3.x 编译及部署

    一.Azkaban 源码编译 1.1 下载并解压 Azkaban 在 3.0 版本之后就不提供对应的安装包,需要自己下载源码进行编译. 下载所需版本的源码,Azkaban 的源码托管在 GitHub ...

  7. .net core 引入SwaggerUI教程

    Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.方便前后端接口对接. 1.打开NuGet程序包,搜索“Swashbuckle ...

  8. Smack 4.3.4 API

      Smack 4.3.4 API 包 包 描述 org.igniterealtime.smack.smackrepl Smack的REPL(读取评估打印循环). org.jivesoftware.s ...

  9. java 枚举示例

    public enum YNEnum { N(0,"否"), Y(1,"是"); private int code; private String name; ...

  10. RabbitMQ的简单模式快速入门与超时异常的处理方法

    本文适合JAVA新人,想了解RabbitMQ又不想去看官网文档的人(英语水看的头疼(◎﹏◎),但建议有能力还是去看官网文档). 消息队列MQ(一) MQ全称为Message Queue,消息队列是应用 ...