JavaScript是Web编程语言,也是很多软件开发者使用的编程语言。近25年来,这本畅销书一直是几十万JavaScript程序员必读的技术著作,本版已经更新到涵盖JavaScript的2020版。书中令人深思、富有启发性的示例随处可见。
这本“犀牛书”在很多工程师心目中有着至高无上的地位。如果你由于种种原因错过了它之前的版本,那一定不要再错过这一版了!
本书介绍JavaScript语言和由浏览器与Node实现的JavaScript API。本书适合有一定编程经验、想学习JavaScript读者,也适合已经在使用JavaScript但希望更深入地理解进而真正掌握这门语言的程序员。
本书的目标是全面地讲解JavaScript语言,对JavaScript程序中可能用到的重要的客户端API和服务器端API提供深入的介绍。本书篇幅较长,内容非常详尽,相信认真研究本书的读者都能获益良多。
......(更多)
David Flanagan从1995起就开始使用JavaScript并写作本书的第1版。他拥有麻省理工学院计算机科学与工程学位,目前是VMware的一名软件工程师。
......(更多)
●第1章 JavaScript简介5
1.1 探索JavaScript7
1.2 Hello World8
1.3 JavaScript之旅9
1.4 示例:字符频率柱形图14
1.5 小结17
●第2章 词法结构18
2.1 JavaScript程序的文本18
2.2 注释19
2.3 字面量19
2.4 标识符和保留字19
2.5 Unicode20
2.6 可选的分号21
2.7 小结23
●第3章 类型、值和变量24
3.1 概述与定义24
3.2 数值26
3.3 文本32
3.4 布尔值38
3.5 null与undefined39
3.6 符号40
3.7 全局对象41
3.8 不可修改的原始值与可修改的对象引用42
3.9 类型转换44
3.10 变量声明与赋值51
3.11 小结58
●第4章 表达式与操作符59
4.1 主表达式59
4.2 对象和数组初始化程序60
4.3 函数定义表达式61
4.4 属性访问表达式62
4.5 调用表达式64
4.6 对象创建表达式65
4.7 操作符概述66
4.8 算术表达式70
4.9 关系表达式75
4.10 逻辑表达式79
4.11 赋值表达式82
4.12 求值表达式83
4.13 其他操作符86
4.14 小结91
●第5章 语句92
5.1 表达式语句93
5.2 复合语句与空语句93
5.3 条件语句94
5.4 循环语句99
5.5 跳转语句106
5.6 其他语句113
5.7 声明117
5.8 小结119
●第6章 对象120
6.1 对象简介120
6.2 创建对象121
6.3 查询和设置属性124
6.4 删除属性128
6.5 测试属性129
6.6 枚举属性130
6.7 扩展对象131
6.8 序列化对象133
6.9 对象方法133
6.10 对象字面量扩展语法135
6.11 小结141
●第7章 数组143
7.1 创建数组144
7.2 读写数组元素146
7.3 稀疏数组148
7.4 数组长度148
7.5 添加和删除数组元素149
7.6 迭代数组150
7.7 多维数组151
7.8 数组方法152
7.9 类数组对象163
7.10 作为数组的字符串165
7.11 小结166
●第8章 函数167
8.1 定义函数167
8.2 调用函数172
8.3 函数实参与形参177
8.4 函数作为值184
8.5 函数作为命名空间187
8.6 闭包188
8.7 函数属性、方法与构造函数192
8.8 函数式编程196
8.9 小结201
●第9章 类202
9.1 类和原型203
9.2 类和构造函数204
9.3 使用class关键字的类209
9.4 为已有类添加方法215
9.5 子类216
9.6 小结226
●第10章 模块227
10.1 基于类、对象和闭包的模块227
10.2 Node中的模块230
10.3 ES6中的模块232
10.4 小结242
●第11章 JavaScript标准库243
11.1 集合与映射244
11.2 定型数组与二进制数据249
11.3 正则表达式与模式匹配255
11.4 日期与时间273
11.5 Error类276
11.6 JSON序列化与解析277
11.7 国际化API280
11.8 控制台API287
11.9 URL API290
11.10 计时器293
11.11 小结294
●第12章 迭代器与生成器295
12.1 迭代器原理296
12.2 实现可迭代对象296
12.3 生成器300
12.4 高级生成器特性303
12.5 小结306
●第13章 异步JavaScript307
13.1 使用回调的异步编程307
13.2 期约311
13.3 async和await330
13.4 异步迭代332
13.5 小结338
●第14章 元编程340
14.1 属性的特性340
14.2 对象的可扩展能力345
14.3 prototype特性346
14.4 公认符号347
14.5 模板标签354
14.6 反射API356
14.7 代理对象359
14.8 小结365
●第15章 浏览器中的JavaScript367
15.1 Web编程基础369
15.2 事件382
15.3 操作DOM391
15.4 操作CSS406
15.5 文档几何与滚动412
15.6 Web组件416
15.7 可伸缩矢量图形427
15.8 <canvas>与图形434
15.9 Audio API453
15.10 位置、导航与历史455
15.11 网络463
15.12 存储479
15.13 工作线程与消息传递490
15.14 示例:曼德布洛特集合496
15.15 小结及未来阅读建议508
●第16章 Node服务器端JavaScript515
16.1 Node编程基础516
16.2 Node默认异步520
16.3 缓冲区523
16.4 事件与EventEmitter525
16.5 流526
16.6 进程、CPU和操作系统细节536
16.7 操作文件537
16.8 HTTP客户端与服务器547
16.9 非HTTP网络服务器及客户端551
16.10 操作子进程554
16.11 工作线程558
16.12 小结566
●第17章 JavaScript工具和扩展568
17.1 使用ESLint检查代码569
17.2 使用Prettier格式化代码570
17.3 使用Jest做单元测试570
17.4 使用npm管理依赖包573
17.5 代码打包574
17.6 使用Babel转译576
17.7 JSX:JavaScript中的标记表达式577
17.8 使用Flow检查类型581
17.9 小结595
......(更多)
但要注意,Attr对象不出现在元素的childNodes[]数组中,不像Element和Text节点那样直接是文档树的一部分。DOM标准允许通过Node接口的attribute[]数组访问Attr 节点。
随着 time-sharing 和基于文本的终端机的出现
......(更多)