当前位置:首页 > 程序设计 >
《JavaScript函数式编程指南》电子书封面

JavaScript函数式编程指南

  • 发布时间:2019年11月12日 09:03:14
  • 作者:路易斯·阿泰西奥
  • 大小:12.79 MB
  • 类别:js函数电子书
  • 格式:PDF
  • 版本:影印版
  • 评分:8.7

    JavaScript函数式编程指南 PDF 影印版

      给大家带来的一篇关于js函数相关的电子书资源,介绍了关于JavaScript、函数式编程、JS指南方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小12.79 MB,路易斯·阿泰西奥编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.4。

      内容介绍

      JavaScript函数式编程指南 PDF

      这书关键介绍怎样根据ECMAScript 6将函数式编程关键技术于编码,以减少编码的多元性。 这书共三一部分內容。*一部分“函数式观念”是为第二一部分的学习培训作铺垫的,这一部分引入了对函数式JavaScript的叙述,从一些关键的函数式定义下手,介绍了纯函数、负作用及其申明式编写程序等函数式编程的关键支撑:第二一部分“函数式基本”重中之重介绍函数式编程的关键技术,如函数链、柯里化、组成、Monad等;第三一部分“函数式专业技能提高”则是介绍应用函数式编程处理实际难题的方式。 这书由浅入深地将函数式编程的有关专业知识铺叙起来,以基础理论作铺垫,并铺以案例,致力于协助读者尽快把握这种內容。假如读者是对面向对象编程手机软件有一定的掌握,且对当代Web手机应用程序挑戰有一定了解的JavaScript开发者,那麼能够从这当中提高函数式编程专业技能。假如读者是函数式编程的新手,那麼能够将这书做为新手入门书藉认真阅读,为将来的学习培训牢固的基础。

      目录

      • 第一部分 函数式思想
      • 第 1章 走近函数式 3
      • 1.1 函数式编程有用吗? 4
      • 1.2 什么是函数式编程? 5
      • 1.2.1 函数式编程是声明式编程 7
      • 1.2.2 副作用带来的问题和纯函数 8
      • 1.2.3 引用透明和可置换性 12
      • 1.2.4 存储不可变数据 13
      • 1.3 函数式编程的优点 14
      • 1.3.1 鼓励复杂任务的分解 15
      • 1.3.2 使用流式链来处理数据 16
      • 1.3.3 复杂异步应用中的响应 18
      • 1.4 总结 19
      • 第2章 高阶JavaScript 21
      • 2.1 为什么要使用JavaScript? 22
      • 2.2 函数式与面向对象的程序设计 22
      • 2.2.1 管理JavaScript对象的状态 28
      • 2.2.2 将对象视为数值 29
      • 2.2.3 深冻结可变部分 31
      • 2.2.4 使用Lenses定位并修改对象图 33
      • 2.3 函数 34
      • 2.3.1 一等函数 35
      • 2.3.2 高阶函数 36
      • 2.3.3 函数调用的类型 38
      • 2.3.4 函数方法 39
      • 2.4 闭包和作用域 40
      • 2.4.1 全局作用域 42
      • 2.4.2 函数作用域 43
      • 2.4.3 伪块作用域 44
      • 2.4.4 闭包的实际应用 45
      • 2.5 总结 48
      • 第二部分 函数式基础
      • 第3章 轻数据结构,重操作 51
      • 3.1 理解程序的控制流 52
      • 3.2 链接方法 53
      • 3.3 函数链 54
      • 3.3.1 了解 lambda 表达式 54
      • 3.3.2 用_.map做数据变换 56
      • 3.3.3 用_.reduce 收集结果 57
      • 3.3.4 用_.filter 删除不需要的元素 61
      • 3.4 代码推理 62
      • 3.4.1 声明式惰性计算函数链 63
      • 3.4.2 类SQL的数据:函数即数据 66
      • 3.5 学会递归地思考 68
      • 3.5.1 什么是递归? 68
      • 3.5.2 学会递归地思考 68
      • 3.5.3 递归定义的数据结构 70
      • 3.6 总结 73
      • 第4章 模块化且可重用的代码 75
      • 4.1 方法链与函数管道的比较 76
      • 4.1.1 方法链接 77
      • 4.1.2 函数的管道化 78
      • 4.2 管道函数的兼容条件 78
      • 4.2.1 函数的类型兼容条件 78
      • 4.2.2 函数与元数:元组的应用 79
      • 4.3 柯里化的函数求值 82
      • 4.3.1 仿真函数工厂 85
      • 4.3.2 创建可重用的函数模板 86
      • 4.4 部分应用和函数绑定 87
      • 4.4.1 核心语言扩展 89
      • 4.4.2 延迟函数绑定 89
      • 4.5 组合函数管道 90
      • 4.5.1 HTML部件的组合 91
      • 4.5.2 函数组合:描述与求值分离 92
      • 4.5.3 函数式库的组合 95
      • 4.5.4 应对纯的代码和不纯的代码 96
      • 4.5.5 point-free编程 98
      • 4.6 使用函数组合子来管理程序的控制流 99
      • 4.6.1 identity(I-combinator) 99
      • 4.6.2 tap(K-组合子) 99
      • 4.6.3 alt(OR-组合子) 100
      • 4.6.4 seq(S-组合子) 101
      • 4.6.5 fork(join)组合子 101
      • 4.7 总结 102
      • 第5章 针对复杂应用的设计模式 103
      • 5.1 命令式错误处理的不足 104
      • 5.1.1 用try-catch处理错误 104
      • 5.1.2 函数式程序不应抛出异常 105
      • 5.1.3 空值(null)检查问题 106
      • 5.2 一种更好的解决方案——Functor 106
      • 5.2.1 包裹不安全的值 107
      • 5.2.2 Functor定义 108
      • 5.3 使用Monad函数式地处理错误 111
      • 5.3.1 Monad:从控制流到数据流 111
      • 5.3.2 使用Maybe Monad和Either Monad来处理异常 115
      • 5.3.3 使用IO Monad与外部资源交互 123
      • 5.4 Monadic链式调用及组合 126
      • 5.5 总结 131
      • 第三部分 函数式技能提升
      • 第6章 坚不可摧的代码 135
      • 6.1 函数式编程对单元测试的影响 136
      • 6.2 测试命令式代码的困难 137
      • 6.2.1 难以识别和分解任务 137
      • 6.2.2 对共享资源的依赖会导致结果不一致 138
      • 6.2.3 按预定义顺序执行 139
      • 6.3 测试函数式代码 140
      • 6.3.1 把函数当作黑盒子 140
      • 6.3.2 专注于业务逻辑,而不是控制流 141
      • 6.3.3 使用Monadic式从不纯的代码中分离出纯函数 142
      • 6.3.4 mock外部依赖 144
      • 6.4 通过属性测试制定规格说明 146
      • 6.5 通过代码覆盖率衡量有效性 152
      • 6.5.1 衡量函数式代码测试的有效性 152
      • 6.5.2 衡量函数式代码的复杂性 155
      • 6.6 总结 158
      • 第7章 函数式优化 159
      • 7.1 函数执行机制 160
      • 7.1.1 柯里化与函数上下文堆栈 161
      • 7.1.2 递归的弱点 164
      • 7.2 使用惰性求值推迟执行 165
      • 7.2.1 使用函数式组合子避免重复计算 167
      • 7.2.2 利用shortcut fusion 167
      • 7.3 实现需要时调用的策略 168
      • 7.3.1 理解记忆化 169
      • 7.3.2 记忆化计算密集型函数 169
      • 7.3.3 有效利用柯里化与记忆化 172
      • 7.3.4 通过分解来实现更大程度的记忆化 173
      • 7.3.5 记忆化递归调用 173
      • 7.4 递归和尾递归优化 175
      • 7.5 总结 178
      • 第8章 管理异步事件以及数据 181
      • 8.1 异步代码的挑战 182
      • 8.1.1 在函数之间创建时间依赖关系 182
      • 8.1.2 陷入回调金字塔 183
      • 8.1.3 使用持续传递式样 186
      • 8.2 一等公民Promise 188
      • 8.2.1 链接将来的方法 190
      • 8.2.2 组合同步和异步行为 195
      • 8.3 生成惰性数据 197
      • 8.3.1 生成器与递归 199
      • 8.3.2 迭代器协议 200
      • 8.4 使用RxJS进行函数式和响应式编程 202
      • 8.4.1 数据作为Observable序列 202
      • 8.4.2 函数式编程与响应式编程 203
      • 8.4.3 RxJS和Promise 205
      • 8.5 总结 206
      • 附录 本书中使用的JavaScript库 207
      • 函数式JavaScript库 207
      • 使用的其他库 208

      学习笔记

      Javascript实现时间倒计时效果

      本文实例为大家分享了js实现时间倒计时展示的具体代码,供大家参考,具体内容如下 这里使用的是Date日期类 !DOCTYPE htmlhtml head meta charset="utf-8" / title日期类倒计时/title script type="text/javascript" window.onload=function(){ var odiv=document.getElementById("time"); var obtn=document.getElementById("btn"); var omusic=document.getElementById("music"); obtn.onclick=function(){//按钮点击 音乐停止播放 omusic.pause(); } function totwo(e){ return e10?"0"+e:""+e;//如果取得的数字为个数则在其前面增添一个0 } function go(){//把获取时间的功能封装到函数内 注意 时间要向下取整避免小数 var time1=new Date();//获取当前时间 获取的市1970年1年1月日到现在的毫秒数(必须写在函数或者……

      javaScript 连接打印机,打印小票的实例

      如下所示: %@ page contentType="text/html;charset=UTF-8"%%@ include file="/webpage/include/taglib.jsp"%!-- !DOCTYPE html --htmlheadmeta name="decorator" content="default" /script type="text/javascript" src="${ctxStatic}/jquery-ztree/3.5.12/js/jquery-1.4.4.min.js"/scriptscript type="text/javascript" src="${ctxStatic}/newStyle/jsPdf.debug.js"/scriptscript type="text/javascript" src="${ctxStatic}/newStyle/html2canvas.js"/scriptscript type="text/javascript"function doPrint(){ bdhtml=window.document.body.innerHTML; sprnstr="!--startprint--"; eprnstr="!--b--"; prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); window.document.body.innerHTML=prnhtml; window.print(); top.layer.closeAll(); }function closes (){ top.layer.closeAll();}functio……

      纯javascript实现选择框的全选与反选功能

      HTML部分 div id="wrap_input_box" input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br input type="checkbox"br /div label for="olabel"选择全部 一键上路input type="checkbox" id= 'all'/label js部分 var oinput = document.getElementById('all'); // var oinput_s = document.getElementsByTagName('input'); var oinput_s = document.querySelectorAll('#wrap_input_boxinput'); // console.log(oinput_s[6]); // 先设置点击全选按钮后 实现所有的选择标签显示选择 取消点击后 取消所有标签选择 oinput.onclick = function(){ if (this.checked){ for (var i =0;ioinput_s.length;i++){ oinput_s[i].checked=true; } }els……

      JavaScript读写二进制数据的方法详解

      前言 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数,如果想要在前端中处理音频和视频。那你必须要对二进制数据有很好地掌握和操作能力。下面话不多说了,来一起看看详细介绍的吧 类型化数组的出现 类型化数组是 HTML5 中引入的API,它能够让开发者使用 JavaScript 直接操作二进制数据。在类型化数组出现之前,我们是无法直接通过 JavaScript 操作二进制数据,通常都是操作 JavaScript 中的数据类型,由运行时转化成二进制。这就多了一个转化的过程,尽管 JavaScript 对数据类型做了很多优化以提高效率,但相比直接操作二进制来说,仍然有效率上的差异。于是类型化数……

      以上就是本次介绍的js函数电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:Clojure Web开发实战

      下一篇:MySQL技术精粹:架构、高级特性、性能优化与集群实战

      展开 +

      收起 -

      • 《JavaScript函数式编程指南》PDF下载

      js函数相关电子书
      JavaScript框架设计
      JavaScript框架设计 全书完整版

      JavaScript,框架设计

      立即下载
      JavaScript忍者秘籍
      JavaScript忍者秘籍 超清第2版

      这是由jQuery库创始人编写的一本深入剖析JavaScript语言的书,从不同层次讲述了逐步成为JavaScript高手所需的知识,适合具备一定JavaScript基础知识的读者阅读

      立即下载
      你不知道的JavaScript(上卷)
      你不知道的JavaScript(上卷) 扫描版

      很多人对JavaScript这门语言的印象都是简单易学,很容易上手。虽然JavaScript语言本身有很多复杂的概念,但语言的使用者不必深入理解这些概念就可以编写出功能全面的应用。

      立即下载
      21天学通HTML+CSS+JavaScript Web开发
      21天学通HTML+CSS+JavaScript Web开发 第7版

      21天学通HTML CSS JavaScript Web开发(第7版) 是全球畅销书《21天学通使用HTML与CSS发布Web站点》的全新升级版本,作者在本书囊括了新的HTML5与CSS3技术,并采用易于理解的步骤式教程讲解了这些技

      立即下载
      Web前端开发精品课 JavaScript基础教程
      Web前端开发精品课 JavaScript基础教程 原书影印版

      《JavaScript基础教程》 共分为2大部分,第1部分是JavaScript基础知识,主要学习JavaScript基础概念如变量、运算符、表达式等。第二部分是JavaScript进阶知识,主要学习DOM、事件操作以及各种开发技

      立即下载
      JavaScript和jQuery实战手册
      JavaScript和jQuery实战手册 高清第3版

      JavaScript可以大大改进网页的动画、交互性和视觉效果,但学习该门语言不太容易。本书通过一步步引导JavaScript基础知识,展示了如何使用jQuery(即预先写好的JavaScript代码库)来节省时间和精

      立即下载
      移动网页设计与开发:HTML5+CSS3+JavaScript
      移动网页设计与开发:HTML5+CSS3+JavaScript 影印完整版

      将落伍的网址打导致更为灵便、友善,而且令其充分运用不一样机器设备和电脑浏览器的与众不同优点。根据《移动网页设计与开发HTML5+CSS3+JavaScript》,您将为投身第一线开发充分准备! *內容

      立即下载
      第三方JavaScript编程
      第三方JavaScript编程 高清版

      第三方JavaScript应用程序是自包含的应用组件,通常都是小脚本或插件,能够为Web站点增加功能。它们往往是由独立的组织或个人提供的,代码和文件都是来自于远程的Web地址。 《第三方JavaS

      立即下载
      读者留言
      41130840

      41130840 提供上传

      资源
      47
      粉丝
      35
      喜欢
      281
      评论
      10

      Copyright 2018-2020 xz577.com 码农之家

      本站所有电子书资源不再提供下载地址,只分享来路

      版权投诉 / 书籍推广 / 赞助:QQ:520161757