underscore

是js封装的一个js库 库和框架是有区别的 mvc框架就是backbone就是依赖这个库
underscore就是定义了一个_( 下划线对象 ); 函数库的所有的方法都归属于这个对象 大致有五类
分别是:集合collection 数组array 函数function 对象object 工具utility ( 这里介绍一些简单的方法 )

框架和库的区别
库:就是js大量方法的集合
框架:是一种开发模式 如:mvc mvp mvm等 简称mv*

一、集合
集合就是伪数组 不存在数组的那些方法 假设我们需要使用数组的方法 就需要人为去封装 还需要考虑兼容性 underscore解决了这个问题
方法:
1.each( 直接加工 ): _.each(list, iteratee, [context]) 遍历list中的所有元素,按顺序用每个元素当做参数调用 iteratee 函数。

2.map( 加工后返回新的 ): _.map(list, iteratee, [context]) 通过对 list 里的每个元素调用转换函数。(iteratee迭代器)生成一个与之相对应的数组

3.find( 检测并返回第一个符合的 ): _.find(list, predicate, [context]) 在list中逐项查找,返回第一个通过predicate迭代函数真值检测的元素值。

4.filter( 检测并返回一个由符合规定的元素组成的新数组 ): _.filter(list, predicate, [context]) 遍历list中的每个值,返回所有通过predicate真值检测的元素所组成的数组。

二、数组
方法:
1.first( 截取数组中第一个元素 ): _.first(array, [n]) 返回array (数组)的第一个元素。传递 n参数将返回数组中从第一个元素开始的n个元素
2.last( 截取数组中最后一个元素 ): _.last(array, [n]) 返回array(数组)中最后一个元素。传递 n参数将返回数组中从最后一个元素开始的n个元素
3.initial( 删除数组中最后一个元素 ): _.initial(array, [n]) 返回数组中除了最后一个元素外的其他全部元素。 在arguments对象上特别有用。传递 n参数将从结果中排除从最后一个开始的n个元素
4.rest( 删除数组中第一个元素 ): _.rest(array, [index]) 返回数组中除了第一个元素外的其他全部元素。传递 index 参数将返回从index开始的剩余所有元素
5.object( 数组转对象 ): _.object(list, [values]) 将数组转换为对象。传递任何一个单独[key, value]对的列表,或者一个键的列表和一个值得列表

三、函数
方法:
1.bind: _.bind(function, object, *arguments)
2.delay( 指定时间之后执行函数 ): _.delay(function, wait, *arguments) 类似setTimeout,等待wait毫秒后调用function。如果传递可选的参数arguments,当函数function执行时, arguments 会作为参数传入
3.once( 只能调用一次 ): _.once(function) 创建一个只能调用一次的函数。重复调用改进的方法也没有效果,只会返回第一次执行时的结果
4.before: _.after(count, function) 创建一个函数, 只有在运行了 count 次之后才有效果

四、对象
方法:
1.keys( 返回键不带原型 ): _.keys(object) 检索object拥有的所有可枚举属性的名称
2.allKeys( 返回键带原型 ): _.allKeys(object) 检索object拥有的和继承的所有属性的名称
3.values( 返回值不带原型 ): _.values(object) 返回object对象所有的属性值
4.extend: _.extend(destination, *sources) 将source对象中的所有属性简单地覆盖到destination对象上,并且返回 destination 对象
5.clone: _.clone(object) 创建 一个浅复制(浅拷贝)的克隆object。任何嵌套的对象或数组都通过引用拷贝,不会复制

五、工具
方法:
1.times: _.times(n, iteratee, [context]) 调用给定的迭代函数n次,每一次调用iteratee传递index参数。生成一个返回值的数组
2.random: _.random(min, max) 返回一个min 和 max之间的随机整数。如果你只传递一个参数,那么将返回0和这个参数之间的整数
3.mixin: _.mixin(object) 允许用您自己的实用程序函数扩展Underscore
4.mow: _.now() 一个优化的方式来获得一个当前时间的整数时间戳。可用于实现定时/动画功能
5.template: _.template(templateString, [settings]) 将 JavaScript 模板编译为可以用于页面呈现的函数, 对于通过JSON数据源生成复杂的HTML并呈现出来的操作非常有用

详细内容请看:https://www.html.cn/doc/underscore/

从零开始的全栈工程师——underscore的更多相关文章

  1. 从零开始的全栈工程师——html篇1

    全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用.) “超文本”就是指页面内可以包含图片.链接,甚至音乐 ...

  2. 从零开始的全栈工程师——html篇1.2

    起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器   id选择器(使用的时候加#)    class选择器(使用的时候加.) 样式的 ...

  3. 从零开始的全栈工程师——MySQL数据库( Dos命令 ) ( phpstudy )

    MySQL是一个关系型数据库,存在表的概念.结构,数据库可以存放多张表,每个表里可以存放多个字段,每个字段可以存放多个记录. phpstudy使用终端打开数据库的命令行 密码: root 数据库 查看 ...

  4. 从零开始的全栈工程师——JS面向对象(复习)

    作用域 栈内存:js执行的环境堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一 ...

  5. 从零开始的全栈工程师——js篇2.5

    数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...

  6. 从零开始的全栈工程师——js篇2.1(js开篇)

    JS开篇 一.js介绍 全称 javascript 但不是java 他是一门前台语言 而java是后台语言js作者 布兰登·艾奇 前台语言:运行在客户端的后台语言:跟数据库有关的 能干什么?    页 ...

  7. 从零开始的全栈工程师——html篇1.7

    position定位与表单 一.position 1.Position细说 Position:relative; Left:100px; Top:100px; Position:absolute; L ...

  8. 从零开始的全栈工程师——html篇1.5

    列表与边距探讨和行块 一.列表 1.无序列表(UL) 1)内部必须有子标签<li></li>2)天生自带内外边距 p也是自带 大家会发现用UL的时候内容前面会出现一个像这样的一 ...

  9. 从零开始的全栈工程师——html篇1.4

    背景与边框 一.背景(backgound) 1.背景颜色:background-color:red;(简写:background:color;) 备注:ie9以下给body设置background-c ...

随机推荐

  1. 推荐分享一个牛X的自定义PHP加密解密类

    通俗点说,用它来进行加密,同一个字符串,每次进行加密,得出的结果都是不一样的,大大加强了数据安全性.同时还可设定加密后数据的有效期,简直牛掰了 #食用方法 将下面的第二份模块代码保存为 Mcrypt. ...

  2. 在DZ 中 showmessage 中可以再次执行 JS

    showmessage ( '登录', '', array (), array (                         'showdialog' => 0,              ...

  3. 怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句

      标签: SQL合并数据 2013-08-21 10:41 489人阅读 评论(0) 收藏 举报  分类: Oracle数据库(14)  select * into 新表名 from (select ...

  4. elasticsearch head 连接不到elasticsearch

    配置好head后看到没有正常连接到elasticsearch.  重启后效果:

  5. bootstrap的其他

    情境文本颜色 <p class="text-muted">...</p> <p class="text-primary">. ...

  6. CentOS 中安装nginx

    Centos6.8 yum  安装 nginx  1:使用yum安装nginx,安装nginx库 [root@hadoop110 //]# rpm -Uvh http://nginx.org/pack ...

  7. C++_异常2-返回错误码

    一种比异常终止更灵活的办法是,使用函数的返回值来指出问题. 例如,ostream类的get(void)成员通常返回下一个输入字符的ASCII码,但到达文件尾时,将返回EOF. 对hmean()来说,这 ...

  8. 洛谷 P2059 [JLOI2013]卡牌游戏(概率dp)

    题面 洛谷 题解 \(f[i][j]\)表示有i个人参与游戏,从庄家(即1)数j个人获胜的概率是多少 \(f[1][1] = 1\) 这样就可以不用讨论淘汰了哪些人和顺序 枚举选庄家选那张牌, 枚举下 ...

  9. fread 快速读入 (神奇挂!)

    注意这里是将后台的所有数据都读入在计算 #include<bits/stdc++.h> using namespace std; #define ll long long namespac ...

  10. Randy Pausch’s Last Lecture

          he University of Virginia American Studies Program 2002-2003.                     Randy Pausch ...