underscore是非常好用的封装库,大小只有4KB,大多插件都是以underscore为基础;

  underscore分5大部分;集合;数组;函数;对象;工具

  集合:集合就是伪数组,虽然长的和数组一样,但是不存在数组的属性和方法;

  假设我们需要数组的方法,他们没有,就需要人为的封装,还需要考虑兼容性,太麻烦了;

  underscore就解决了这个问题;  '_'为他的调用对象

  1._.each(a,function(ele,index))           each的第一个参数是集合本身,第二个参数为函数,函数里两个参数(第一个参数:里面的元素,第二个参数:就是元素索引)

  2._.map()    用法同_each()   但是他可以对里面元素进行加工,返回处理后的新数组;

  3._.find(arr,function(){})  找到第一个满足条件的元素,没有为undefined;

  4._.filter()   找到所有满足条件的元素,返回新数组;

  集合本身就是数组,所以数组也可以运用集合的方法;

  数组:

  1._.first()  返回数组第一个元素,传递参数n     返回从第一个到第n个参数;

  2._.last()   返回数组中最后一个元素,传递参数n   返回从最后参数到n个参数;

  3._.initial()  删除数组中最后一个元素,传递参数n   返回往前删除n个参数;

  4._.rest()  删除数组中第一个参数,传递参数n,返回从前往后删n个参数;

  5._.Object()  将数组转为对象,不管是几维;

  函数:

  1._.bind(fn,obj)  绑定完之后,返回绑定完后的函数fn,里面的this就是obj;

  2._.delay(fn,5)  等待几秒后执行里面的函数;

  3._.once()  这个函数只能调用一次,不许多个调用;

  4._.after(n,fn)  在运行n次之后才会执行fn函数,(要保证,所有的异步都完成之后才执行) 

  5._before(n,fn)  创建一个函数fn调用不超过n次,如果超过n次,就不再执行,返回最后一个结果,并被记住;

  对象:

  1._.keys()  检索obj中所有可枚举的属性

  2._.allKeys()  将对象上属性和他原型上的属性,列举出来;

  3._.values()  返回所有的属性值;

  4._.extend()  将n个对象合并到一个对象上;

  5._clone()  浅拷贝;

  工具:

  1._times(n.fn)  函数调用n次,函数有个形参,返回为索引;

  2._.random()  返回最大值和最小值的随机整数,如果1个参数,返回0到那个参数的随机数;

  3._.mixin()  如果你有特别好的方法,可以通过这个方法追加到  Underscore.js(1.9.1) 中文文档  里面哦;

  4._.now()  时间戳;

  5._template()  模板,预编译模板;

  这里只是将部分计较重要的方法和大家进行了介绍,

  详情请看   https://www.html.cn/doc/underscore/#each

Underscore.js部分讲解的更多相关文章

  1. 深入解析Underscore.js源码架构

    Underscore.js是很有名的一个工具库,我也经常用他来处理对象,数组等,本文会深入解析Underscore源码架构,跟大家一起学习下他源码的亮点,然后模仿他写一个简单的架子来加深理解.他的源码 ...

  2. Underscore.js

    概述 Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库 ...

  3. 新手入门Underscore.js 中文(template)

    Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了javaScript的编程.MVC框架Backbone.js就将这个库作为自 ...

  4. HiShop2.x版本中的上传插件分析,得出所用的模板语言为Underscore.js 1.6.0且自己已修改

    效果: 上传组件非常的酷,但是分析其使用JS写法使用了模板语言的,代码如下: <script type="text/j-template" id="tpl_popb ...

  5. Underscore.js使用

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

  6. Underscore.js基础入门

    公司产品集成了对Underscore.js,所以需要对这个库有一定的了解.通过查阅资料,发现这个库主是对Array和JSON的处理支持.通过Underscore.js库,可以方便的对Array和JSO ...

  7. (2)Underscore.js常用方法

    目录 1.集合相关方法        1.1.数组的处理                map(循环,有返回值),将返回的值依次存入一个新的数组                each(循环,无返回值 ...

  8. (1)Underscore.js入门

    1. Underscore对象封装 Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文中称"Undersco ...

  9. underscore.js依赖库函数分析二(查找)

    查找: 在underscore.js封装了对dom查找的操作,find()和filter()函数,find()函数的查找操作是返回首个与条件相符的元素值,filter()函数是找到与条件相符的所有元素 ...

随机推荐

  1. set集合的遍历(基于迭代器和增强for循环,没有一般的for循环)

    赋:开发项目中见到的代码 Java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法 package com.sort; import java.util.HashSet; ...

  2. confluence 新tab 页面打开 kibana short link

    confluence 新tab 页面打开 https://confluence.atlassian.com/confkb/how-to-force-links-to-open-in-a-new-win ...

  3. mysql配置my.cnf文件,以及参数优化提升性能

    系统centos7 mariadb通过yum安装 mysql配置文件位于/etc/my.cnf 常用参数: 1)max_connections设置最大连接(用户)数,其默认值为100,设置太小会出现t ...

  4. hive array、map、struct使用

    hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps ...

  5. lapis 1.7.0 更好的openresty 版本兼容以及安全数据库支持

    lapis 1.7.0 今年4月2号就发布了,一直没有注意,今天看到changelog就简单的进行了一个 测试(主要是与openresty版本的测试,新变更后边会有) 使用docker-compose ...

  6. Power consumption comparison

    Here is my draft evaluation when old MCU replacement for power consumption, the comparsion betwween ...

  7. 几个OOD概念

    Composition vs. Aggregation Composition和Aggregation都是”包含”的关系 (part of, made up of) ,不同的是生命周期.对于Compo ...

  8. sql里 where和order by一起使用是怎样的顺序

    where 列2 = ‘条件1’ 这个先执行过滤后的数据 再order by ‘条件2’最后取第一条数据也就是先where 再order by 再limit

  9. openstack--5--控制节点和计算节点安装配置nova

    Nova相关介绍 目前的Nova主要由API,Compute,Conductor,Scheduler组成 Compute:用来交互并管理虚拟机的生命周期: Scheduler:从可用池中根据各种策略选 ...

  10. JDK8新增时间类型用在JPA中的问题

    之前数据库存储日期时间类型时一般POJO实体对应属性为java.util.Date,然后通过JPA注解指定它是日期格式或是日期时间格式,JDK8中新增了更好的时间API,如表示本地日期的LocalDa ...