内容简介
JavaScript是一种脚本语言,已广泛用于Web应用开发。本书就是一本引导读者深入学习JavaScript,并能成为JavaScript专家的书。
全书共10章,分别介绍了对象和原型、函数、闭包、术语、异步编程、JavaScript的IRL、编程风格、工作流程、代码质量、提高可测试性等内容。通过一系列内容和示例的讲解,本书进一步剖析了JavaScript的内部机制,为读者呈现更加全面的JavaScript。
本书适合有一定经验的JavaScript开发人员阅读,能够帮助读者更好地认识和运用JavaScript语言。
作者简介
Mark Daggett是一名具有开拓精神的新媒体艺术家,是一名专业的开发人员,是在堪萨斯城的一个社会创新实验室Humansized公司的CEO。他是Pledgie.com(一个流行的众筹平台)的合伙创始人,是艺术学的兼职教授。他曾在用户体验和用户交互设计、概念开发以及战略领域工作了近20年,担任过各种启动企业、咨询以及顾问的角色。他是洛克菲勒新媒体奖提名人,并曾经被《纽约时报》(New York Times)、《世界报》(Le Monde)、《连线》杂志(WIRED Magazine)以及《表面》(Surface Magazine)杂志等报道过。Mark的个人网站是http://www. markdaggett.com,Twitter账号是@ heavysixer。
内页插图
目录
第1章 对象和原型 1
1.1 鸟瞰JavaScript 1
脚本设计 2
1.2 对象概述 3
1.2.1 对象化 3
1.2.2 原型编程 20
1.3 小结 29
第2章 函数 30
2.1 JavaScript中的代码块 30
2.2 小结 44
第3章 了解闭包 45
3.1 作用域的真相 45
3.1.1 理解this关键字 46
3.1.2 块级作用域 48
3.2 第一个闭包程序 49
3.3 为什么要用闭包 50
对象工厂 50
3.4 小结 53
第4章 术语和俚语 54
4.1 Jargon.prototype = new Slang() 54
什么是编程术语? 55
4.2 强转 55
4.2.1 转为String 56
4.2.2 转为数字 56
4.2.3 强转的陷阱 57
4.3 逻辑运算符 61
4.3.1 逻辑与(&&) 61
4.3.2 逻辑或(||) 62
4.3.3 逻辑非(!) 62
4.4 位变换 65
4.4.1 按位与(&) 65
4.4.2 按位或(|) 67
4.4.3 按位异或(^) 68
4.4.4 按位非(~) 69
4.4.5 位移操作(<<,>>,>>>) 69
4.5 不易读代码 71
4.5.1 暗中的eval 71
4.5.2 各种进制 71
4.5.3 使用Unicode编码的变量 72
4.5.4 真正的WAT在这里 72
4.6 小结 73
4.7 补充参考资料 74
第5章 异步生活 75
5.1 理解JavaScript中的并发 75
并发 75
5.2 理解JavaScript的事件循环 77
5.2.1 运行至完成 77
5.2.2 事件触发的设计 77
5.2.3 事件循环的内部 77
5.3 回调 79
5.3.1 感知性能 80
5.3.2 连续传递风格 81
5.3.3 回调地狱 82
5.4 Promise:从未来返回 83
使用Promise 84
5.5 生成器和协程 85
5.5.1 生成器 86
5.5.2 协程的约定 88
5.5.3可持续生成器 89
5.6 Web Workers 91
5.6.1 并发 91
5.6.2 知道什么时候做一个工头 91
5.6.3 雇用worker 92
5.7 小结 100
其他资源 100
第6章 JavaScript的IRL 102
6.1 硬件崇拜者日记 102
6.1.1 消防软管 102
6.1.2 每个人都可以玩的硬件 103
6.1.3 了解物理硬件 103
6.2 物理计算 104
物联网 105
6.3 为什么要使用JavaScript 105
6.3.1 搭建桥梁 106
6.3.2 响应式编程范式 106
6.4 NodeBots:快速,廉价和伺服控制 107
6.4.1 REPL 108
6.4.2 为何要多此一举 108
6.4.3 前提条件 109
6.4.4 Arduino IDE 110
6.4.5 Node串行端口 112
6.4.6 Firmata 115
6.4.7 Johnny-Five 118
6.5 Fauxbots 123
6.6 其他资源 123
第7章 风格 124
7.1 什么是风格 124
7.2 什么是编程风格 125
7.2.1 一致性 125
7.2.2 表达能力 125
7.2.3 简洁 125
7.2.4 约束性 126
7.3 JavaScript风格指南 126
7.3.1 视觉清晰度规则 126
7.3.2 计算效率规则 134
7.4 施行代码风格 139
7.4.1 Beautifiers 139
7.4.2 通过IDE执行 140
7.5 小结 142
第8章 工作流程 144
8.1 不要铲雪 144
8.2 什么是工作流程 144
8.3 合理的JavaScript开发流程 145
8.4 工具的选择 145
8.4.1 订购工具 146
8.4.2 依赖关系管理 148
8.4.3 保护升级路径 149
8.5 引导程序 150
8.6 开发 153
CoffeeScript示例 154
8.7 测试 157
8.7.1 如何测试 157
8.7.2 Karma 157
8.7.3 PhantomJS 159
8.7.4 测试什么 160
8.8 构建 163
8.8.1 编译 163
8.8.2 分析 163
8.8.3 拼接 163
8.8.4 优化 163
8.8.5 测试 164
8.8.6 通知 164
8.9 支持 164
8.9.1 JavaScript中的错误报告 165
8.9.2 源码映射 165
8.10 小结 165
第9章 代码质量 167
9.1 定义代码质量 167
9.1.1 主观质量 168
9.1.2 客观质量 168
9.2 如何度量质量 168
9.3 为什么要度量代码质量 169
9.4 度量JavaScript代码质量 170
静态代码分析 170
9.5 小结 188
第10章 提高可测试性 189
10.1 为什么测试法测试 189
10.1.1 测试谬论 190
10.1.2 确认偏见 193
10.2 找到基线 195
10.2.1 语句覆盖 196
10.2.2 函数覆盖 197
10.2.3 分支覆盖 197
10.2.4 Istanbul 198
10.2.5 覆盖率偏见 199
10.3 偏见消除测试 200
10.3.1 模糊测试 200
10.3.2 JSCheck 202
10.3.3 自动测试 206
10.4 小结 207
前言/序言
JavaScript专家编程 电子书 下载 mobi epub pdf txt