内容简介
第1章 面向对象的JavaScript
1.1 JavaScript中的对象
1.1.1定制对象
1.1.2类
1.2代码规范和命名
1.2.1规则1:使用描述性的名字
1.2.2规则2:以小写字母开头
1.2.3规则3:使用骆驼命名法来分割单词
1.2.4规则4:全局常量使用全大写的名字
1.2.5规则5:集中在一个语句中声明函数体的所有变量并将其置于函数体顶部
1.3 ECMAScript 5
1.3.1 JSON数据格式解析
1.3.2严格模式
1.3.3函数绑定
1.3.4数组方法
1.3.5对象方法
1.4小结
第2章 JavaScript文档
2.1行内和块级注释
2.2结构化的JavaScript文档
2.3 YUIDoc文档格式
2.3.1为“类”、构造器、属性和方法添加文档
2.3.2为事件添加文档
2.3.3为代码示例添加文档
2.3.4其他YUIDoc文档标签
2.4更具表达性的文档格式——Markdown
2.4.1用标题来组织内容
2.4.2换行以及创建段落
2.4.3创建列表
2.4.4强调文本
2.4.5显示代码
2.4.6添加引用
2.4.7添加URL链接
2.4.8插入图片
2.4.9生成水平分割线
2.4.10用反斜杠来插入保留字符
2.4.11对于其他内容,可以使用HTML
2.5使用YUIDoc创建一个文档网站
2.6小结
第3章 编写高质量的JavaScript
3.1进行静态代码分析
3.1.1 JSLint
3.1.2 JSHint
3.1.3 Google Closure Compiler和Closure Linter
3.1.4选择一个静态代码分析工具
3.2 JavaScript中的单元测试
3.2.1 JavaScript的单元测试框架
3.2.2使用Jasmine来进行JavaScript单元测试
3.3处理运行时错误
3.3.1 JavaScript的原生错误类型
3.3.2将可能出错的代码放入try-catch语句中
3.3.3检测错误类型
3.3.4自定义错误类型
3.4度量代码质量
3.4.1单元测试的代码覆盖度
3.4.2度量代码复杂度
3.5小结
第4章 增强JavaScript性能
4.1优化页面加载时间
4.1.1HTML标签顺序
4.1.2 JavaScript文件的GZip编码传输
4.1.3缩编、混淆和编译
4.1.4请求时才延迟加载JavaScript文件
4.2优化文档对象的操作
4.2.1实现对页面元素的最小化访问
4.2.2尽量利用已有元素
4.2.3离线DOM的利用
4.2.4使用CSS而非JavaScript来操控页面样式
4.3提升DOM事件性能
4.3.1委托事件至父元素
4.3.2使用框架化处理频密发出的事件
4.4提升函数性能
4.5使用正则表达式实现更快速的字符串操作
4.6更快速地使用数组
4.6.1快速创建数组
4.6.2快速进行数组循环
4.7转移密集型任务至Web Worker
4.8简单的性能测量
4.9小结
第5章 设计模式:创建型
5.1什么是设计模式
5.2创建型设计模式
5.2.1工厂模式
5.2.2抽象工厂模式
5.2.3生成器模式
5.2.4原型模式
5.2.5单例模式
5.3小结
第6章 设计模式:结构型
6.1适配器模式
6.2组合模式
6.3装饰模式
6.4外观模式
6.5享元模式
6.6掺合模式
6.7模块模式
6.8代理模式
6.9小结
第7章 设计模式:行为型
7.1职责链模式
7.2命令模式
7.3迭代器模式
7.4观察者模式
7.5中介者模式
7.6备忘录模式
7.7承诺模式
7.8策略模式
7.9小结
第8章 设计模式:架构型
8.1 MVC模式
8.2 MVP模式
8.3 MVVM模式
8.4架构型模式框架
8.5小结
第9章 代码文件依赖管理
9.1使用RequireJS进行代码文件依赖管理
9.2加载、初始化RequireJS
9.3模块名称的别名
9.4内容分发网络和后备
9.5建立模块
9.6于请求时才加载额外的脚本
9.7 RequireJS代码优化工具
9.8 RequireJS的附加插件
9.9 RequireJS的代替品
9.10小结
第10章 移动设备JavaScript开发
10.1移动Web开发的局限性
10.1.1电池续航能力
10.1.2网络带宽速度与延时
10.1.3板载内存容量
10.1.4操作系统响应能力
10.2通过JavaScript访问移动设备上的传感器
10.2.1访问地理位置定位传感器
10.2.2访问触摸传感器
10.2.3访问姿态传感器和方向传感器
10.2.4访问运动传感器
10.2.5未能访问的传感器
10.2.6事件框架化与传感器数据
10.2.7利用传感器数据进一步发挥
10.3网络连接故障与离线状态
10.3.1在线与离线状态的检测
10.3.2利用Web Storage API长期保存数据
10.3.3 HTML5 Application Cache
10.4响应式(自适应)网页设计的JavaScript
10.5小结
第11章 使用CanvasAPI创建游戏
11.1在Canvas中的基本绘图操作
11.2高清Canvas元素
11.3使用Canvas制作游戏
11.3.1在Canvas上绘制图像
11.3.2 Canvas中的动画
11.3.3游戏的控制
11.3.4碰撞检测
11.3.5游戏主循环
11.3.6分层Canvas以提高性能
11.4在Canvas中制作Frogger游戏
11.5小结
第12章 使用WebRTC实现视频聊天
12.1 WebRTC规范
12.2访问网络摄像头和麦克风
12.3建立一个简单的视频聊天网页应用程序
12.4创建视频聊天客户端
12.5小结
第13章 客户端模板引擎的使用
13.1动态更新页面内容
13.2通过Ajax动态加载HTML
13.3在客户端应用模板
13.3.1不依赖库实现客户端模板
13.3.2使用Mustache.js模板引擎实现客户端模板
13.3.3使用Handlebars.js引擎实现客户端模板
13.3.4作为替换的其他客户端模板引擎库
13.4考虑渐进增强
13.5小结
第14章 Node.js应用平台
14.1 Node.js安装
14.2编写Node.js应用程序
14.2.1 console对象
14.2.2加载模块
14.3 Node.js软件包
14.4划分Node.js应用程序分布至多个文件
14.5用干网页应用程序的Node.js框架
14.5.1 Express框架
14.5.2 Socket.IO
14.6 Node.js应用程序的托管
14.7小结
第15章 构建工具及自动化
15.1构建工具
15.1.1 Grunt——JavaScript任务运行器
15.1.2 Gulp.js——“流式”构建系统
15.1.3使用构建工具来使常规任务实现自动化
15.2第三方库和框架的管理
15.3项目的建立以及基本框架搭建
15.4小结
第16章 浏览器开发者工具
16.1找出隐藏的浏览器开发者工具
16.2 JavaScript控制台
16.2.1输出信息到控制台窗口
16.2.2使用控制台进行性能测量
16.2.3移除引用console对象的代码以进行发布
16.3对运行中的JavaScript Code进行调试
16.3.1已缩编代码的处理
16.3.2暂停并观察正在运行的JavaScript代码
16.4分析JavaScript代码
16.4.1查找内存泄漏
16.4.2识别性能瓶颈
16.5小结