从零开始的全栈工程师——underscore
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的更多相关文章
- 从零开始的全栈工程师——html篇1
全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用.) “超文本”就是指页面内可以包含图片.链接,甚至音乐 ...
- 从零开始的全栈工程师——html篇1.2
起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器 id选择器(使用的时候加#) class选择器(使用的时候加.) 样式的 ...
- 从零开始的全栈工程师——MySQL数据库( Dos命令 ) ( phpstudy )
MySQL是一个关系型数据库,存在表的概念.结构,数据库可以存放多张表,每个表里可以存放多个字段,每个字段可以存放多个记录. phpstudy使用终端打开数据库的命令行 密码: root 数据库 查看 ...
- 从零开始的全栈工程师——JS面向对象(复习)
作用域 栈内存:js执行的环境堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一 ...
- 从零开始的全栈工程师——js篇2.5
数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...
- 从零开始的全栈工程师——js篇2.1(js开篇)
JS开篇 一.js介绍 全称 javascript 但不是java 他是一门前台语言 而java是后台语言js作者 布兰登·艾奇 前台语言:运行在客户端的后台语言:跟数据库有关的 能干什么? 页 ...
- 从零开始的全栈工程师——html篇1.7
position定位与表单 一.position 1.Position细说 Position:relative; Left:100px; Top:100px; Position:absolute; L ...
- 从零开始的全栈工程师——html篇1.5
列表与边距探讨和行块 一.列表 1.无序列表(UL) 1)内部必须有子标签<li></li>2)天生自带内外边距 p也是自带 大家会发现用UL的时候内容前面会出现一个像这样的一 ...
- 从零开始的全栈工程师——html篇1.4
背景与边框 一.背景(backgound) 1.背景颜色:background-color:red;(简写:background:color;) 备注:ie9以下给body设置background-c ...
随机推荐
- Unity---动画系统学习(5)---使用MatchTarget来匹配动画
1. 介绍 做好了走.跑.转弯后,我们就需要来点更加高级的动画了. 我们使用自带动画学习笔记2中的FQVault动画,来控制人物FQ. 在动画学习笔记4的基础上添加Vault动画. 添加一个参数Vau ...
- 华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议
大家好,我是华为云DevCloud项目管理服务的产品经理 恒少:) 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数.我希望借助 ...
- ionic4 refresh组件位置变更:Ignored attempt to cancel a touchmove event with cancelable=false
io3 中 refresh组件位置可不定: io4 中 须置顶,否则报错,此外complete方法的调用位置改为target属性 参考:https://github.com/ionic-team/io ...
- JavaWeb学习笔记(四)—— response
一.response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse.在客户端发出每个请求时,服 ...
- python基础语法之基础语法规则以及设置
1. 编码格式 在python3以上版本中,py文件默认采用UTF-8格式编码,所有的字符串都是unicode字符串.当然,我们也可以自己为源码文件指定不同的编码,以utf-8为例,相关代码如下所示: ...
- 误删除google浏览器用户,如何恢复之前收藏的标签,亲测有效
第一种方案: 看 路径 C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default 下或者 C:\Users\admin\AppData ...
- JOB&paper
我突然想到,不管我最终有没有获得一份可观的工作,但是每个公司都最终会收到我的一份简历 (3)熟悉面向对象编程: (4)熟悉TCP/IP, Http等网络协议和网络编程: 2.熟练掌握MFC.STL ...
- GDCM
gdcmconv: gdcm 2.2.4 $Date$ Usage: gdcmconv [OPTION] input.dcm output.dcm Convert a DICOM file int ...
- poj2393tmp
#include"iostream" #include"stdio.h" #include"algorithm" using namespa ...
- Python 读取Excel数据 xlrd
#导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...