第1章 运行CoffeeScript程序 1
1.1 安装Node.js 1
1.1.1 在OS X上安装Node js 2
1.1.2 在Windows上安装Node.s 3
1.2 使用安装程序 3
1.2.1 使用独立的可执行文件 4
1.2.2 使用Chocolatey 5
1.2.3 在Linux上安装Node.js 5
1.2.4 手动编译Node js 7
1.2.5 跳过Node安装步骤 8
1.3 测试Node安装 8
1.4 安装CoffeeScript 9
1.5 第一段CoffeeScript代码 10
1.6 编译CoffeeScript文件 10
1.7 支持CoffeeScript的编辑器 11
1.7.1 TextMate支持 11
1.7.2 Sublime Text 2支持 11
1.7.3 Vim支持 12
1.7.4 Emacs支持 12
1.8 开始开发Web应用程序 12
1.9 小结 14
第2章 编写第一个CoffeeScript程序 15
2.1 跟着示例做 15
2.2 CoffeeScript基础 16
2.2.1 语句 16
2.2.2 变量 17
2.2.3 注释 17
2.3 函数调用 18
2.4 控制结构 20
2.4.1 if语句 20
2.4.2 else和else if语句 22
2.4.3 unless语句 22
2.4.4 单行形式 23
2.5 比较运算符 23
2.6 数组 25
2.6.1 数列 26
2.6.2 循环 27
2.6.3 判断数组成员 30
2.7 简单对象 31
2.8 小结 33
第3章 构建简单的应用程序 34
3.1 构建应用程序 34
3.2 字符串插值 38
3.3 定义函数 40
3.3.1 函数命名 41
3.3.2 函数返回 41
3.4 在应用程序中增加动态特性 44
3.5 Switch语句 48
3.6 小结 51
第4章 改进应用程序 52
4.1 检查值是否存在 52
4.1.1 使用存在运算符 53
4.1.2 空值在链式调用中 54
4.1.3 以空值为条件,赋新值 55
4.1.4 在宠物应用程序中处理空值 56
4.2.次给多个变量赋值 59
4.3 高级函数参数 62
4.3.1 默认参数值 63
4.3.2 接受可变数目参数的splat 67
4.4 小结 72
第5章 CoffeeScript的类 73
5.1 在CoffeeScript中定义类 73
5.1.1 给类绑定方法 74
5.1.2 CoffeeScript如何构建JavaScript的类 75
5.1.3 保持对象属性状态 76
5.1.4 在对象中调用其他方法 76
5.1.5 在类定义的外面绑定方法 77
5.2 构造函数 78
5.3 类的静态方法调用 80
5.4 继承 82
5.5 在CoffeeScript中使用其他类库 85
5.5.1 CoffeeScript的Backbone类 86
5.5.2 CoffeeScript的Ember类 87
5.6 小结 88
第6章 用类重构 89
6.1 重构周期 89
6.2 用类结构化数据 90
6.2.1 添加业务逻辑 91
6.2.2 更多数据建模 92
6.2.3 更多业务逻辑 93
6.3 用类管理显示逻辑 94
6.3.1 显示一个集合 96
6.3.2 顶层的显示逻辑 98
6.4 最后的重构 99
6.5 使用继承重构 102
6.6 获得绿灯 104
6.7 小结 104
第7章 CoffeeScript高级用法 105
7.1 正确的上下文 105
7.2 用memoization节省工作 108
7.3 新的习惯用法:选项对象 111
7.4 小结 115
第8章 异步操作 117
8.1 理解异步操作 117
8.2 了解远程API 119
8.3 发出异步请求 120
8.4 使用第三方库 122
8.5 多个异步调用 124
8.5.1 循环请求 125
8.5.2 确定何时结束 127
8.6 管理异步调用的替代方案 128
8.6.1 承诺 128
8.6.2 异步辅助库 131
8.6.3 IcedCoffeeScript 133
8.7 小结 136
第9章 调试 137
9.1 发现问题 137
9.2 源映射 138
9.2.1 Firefox的源映射开发工具 139
9.2.2 Chrome的源映射开发工具 144
9.3 解决问题 150
9.4 小结 151
第10章 在更多地方使用CoffeeScript 153
10.1 直接在浏览器运行CoffeeScript 153
10.2 CoffeeScript在浏览器控制台 154
10.2.1 Firefox的CoffeeScript控制台 155
10.2.2 Chrome的CoffeeScript控制台 157
10.3 在Rails中使用CoffeeScript 159
10.3.1 设置资产管道 159
10.3.2 配置应用程序 162
10.3.3 添加CoffeeScript 163
10.3.4 预编译资产 165
10.4 在Brunch中使用CoffeeScript 166
10.4.1 创建Brunch项目 166
10.4.2 完善应用程序 167
10.4.3 预编译资产 170
10.5 在Node js环境下使用CoffeeScript 170
10.5.1 创建项目 171
10.5.2 保持服务器最新 172
10.5.3 添加CoffeeScript编译 173
10.5.4 完成应用程序 173
10.5.5 整理脚本依赖关系 175
10.6 小结 176
第11章 在服务器中使用CoffeeScript 177
11.1 用CoffeeScript运行服务器 177
11.2 增加数据端 180
11.3 使用数据库 182
11.4 使用Cakefile 184
11.4.1 写一个Cake任务 185
11.4.2 更多Cake任务 186
11.5 构建交互式应用程序 186
11.6 小结 190