本书由资深软件开发专家撰写,凝聚其多年开发经验,系统、深入、全面地阐释JavaScript,内容涉及流行的Web开发实践,结合实际案例进行讲解,授人以渔。本书内容并不局限于某个具体功能的使用方法,而是系统深入地讲解JavaScript的本质与结构,清晰阐释ECMAScript、DOM和BOM三部分内容的关系及重要性,以帮助开发人员全面深入了解前端开发技术。本书讲解的内容通俗易懂、深入浅出,特别是书中所用示例的设计,它们不仅可以让读者理解某个知识点的用法,更能让读者明白具体知识点所使用的场景,从而更深入地理解具体内容。 本书内容安排合理,架构清晰,注意理论与实践相结合,适合那些希望学习Web编程语言的初、中级程序员和希望精通JavaScript的程序员阅读。
目录
- 第一篇 JavaScript基础知识
- 第1章 JavaScript怎么学 2
- 1.1 三种学习方法 2
- 1.2 JavaScript的学习方法 3
- 第2章 JavaScript简介 6
- 2.1 ECMAScript概述 7
- 2.2 DOM概述 8
- 2.3 BOM概述 8
- 2.4 HTML5概述 9
- 第3章 JavaScript的本质 10
- 3.1 工具介绍 10
- 3.2 JavaScript的结构 15
- 3.3 JavaScript的内存模型 17
- 第4章 function类型对象 20
- 4.1 创建function 20
- 4.2 用作对象 23
- 4.3 处理业务 23
- 4.4 创建对象 49
- 4.5 三种子类型 57
- 第5章 object类型对象 62
- 5.1 创建object类型对象的三种方式 62
- 5.2 对象的属性 66
- 5.3 属性的描述 74
- 第6章 直接量及其相关对象 79
- 6.1 直接量的保存方式 79
- 6.2 直接量的封包与解包 80
- 6.3 直接量的包装对象 81
- 第7章 点运算符与this关键字 90
- 7.1 点运算符 90
- 7.2 this的含义 90
- 7.3 关联方法后的this 91
- 7.4 内部函数中的this 91
- 7.5 对象的属性不可以继承 93
- 第8章 Global与Window对象 94
- 8.1 Global对象 94
- 8.2 Window对象的特殊性 94
- 第二篇 ECMAScript 2015中的新特性
- 第9章 类 98
- 9.1 新类型class 98
- 9.2 class的用法 98
- 第10章 模块 100
- 10.1 模块的基本用法 100
- 10.2 导入后重命名 101
- 10.3 默认导出 102
- 10.4 导入为命名空间 103
- 10.5 打包导出 103
- 第11章 新增语法 105
- 11.1 let和const 105
- 11.2 字符串模板 106
- 11.3 函数参数默认值 106
- 11.4 参数扩展 107
- 11.5 箭头函数 107
- 11.6 for-of遍历 108
- 第12章 新增对象 111
- 12.1 Symbol 111
- 12.2 容器对象 112
- 12.3 缓存对象 121
- 12.4 异步处理 128
- 12.5 GeneratorFunction和Generator 132
- 12.6 反射与代理 134
- 第13章 原有对象的新增属性 140
- 13.1 Object 140
- 13.2 String 143
- 13.3 Number 150
- 13.4 Array 150
- 13.5 Math 154
- 13.6 RegExp 155
- 第三篇 DOM
- 第14章 DOM概述 162
- 14.1 DOM标准的结构 162
- 14.2 DOM标准的特点 163
- 第15章 DOM核心 164
- 15.1 文档对象 164
- 15.2 异常对象 177
- 15.3 辅助对象 178
- 第16章 DOM中的HTML标准 182
- 16.1 HTMLCollection 182
- 16.2 HTMLOptionsCollection 184
- 16.3 HTMLDocument 184
- 16.4 HTMLElement 186
- 第17章 DOM事件 187
- 17.1 事件流 187
- 17.2 EventTarget 189
- 17.3 EventListener 190
- 17.4 Event 190
- 17.5 DOM0级事件 199
- 第18章 DOM样式和视图 201
- 18.1 Views 201
- 18.2 StyleSheets 202
- 18.3 CSS 204
- 第19章 DOM遍历和范围 215
- 19.1 遍历 215
- 19.2 范围 219
- 第四篇 BOM
- 第20章 window对象 228
- 20.1 窗口、框架相关属性 228
- 20.2 窗口操作相关属性 230
- 20.3 弹出窗口相关属性 231
- 20.4 浏览器对象相关属性 231
- 20.5 定时器相关属性 231
- 20.6 其他属性 234
- 第21章 location对象 235
- 21.1 8个读写属性 235
- 21.2 三个方法属性 237
- 第22章 其他对象 238
- 22.1 history对象 238
- 22.2 navigator对象 238
- 第五篇 HTML5
- 第23章 本地存储 242
- 23.1 本地存储的分类 242
- 23.2 Storage存储 243
- 23.3 StorageEvent 245
- 23.4 IndexedDB数据库 248
- 第24章 canvas作图 271
- 24.1 绘制矩形 272
- 24.2 绘制路径 274
- 24.3 组合与剪切 282
- 24.4 坐标检测 285
- 24.5 修改颜色和样式 286
- 24.6 插入文本 290
- 24.7 插入图片 292
- 24.8 环境的保存和恢复 292
- 24.9 移动坐标原点 293
- 24.10 旋转坐标系 294
- 24.11 缩放 295
- 24.12 自由转换 297
- 24.13 阴影 298
- 24.14 动画 299
- 24.15 游戏 300
- 第25章 WebSocket 306
- 25.1 网络传输的原理和底层协议 306
- 25.2 WebSocket简介 307
- 25.3 WebSocket的优势 308
- 25.4 基本应用 308
- 25.5 RESTful应用 312
- 25.6 在线聊天系统 313
- 25.7 传输对象和二进制数据 318
- 第26章 多线程处理 335
- 26.1 单线程与多线程的概念 335
- 26.2 线程与进程的概念 337
- 26.3 JavaScript中的多线程 338
- 第27章 获取位置信息 347
- 27.1 geolocation对象 347
- 27.2 Position接口 348
- 27.3 PositionError接口 349
- 27.4 PositionOptions接口 350
- 27.5 显示到地图上 353
- 第28章 富文本编辑器与公式编辑器 356
- 28.1 富文本编辑器的原理 356
- 28.2 公式编辑器 364
- 第29章 总结 380
- 29.1 ECMAScript 380
- 29.2 DOM和BOM 381
- 29.3 HTML5 382
- 附录 ExcelibIDB源代码 384