-
基本的格式化
- 缩进层级
- 语句终止
- 行的长度
- 行的分隔
- 命名
- 直接量
-
注释
- 单行注释
- 多行注释
- 书写注释
- 文档注释
-
语句和表达式
- 括号对齐
- 语句块间距
- switch语句
- with语句
- for循环
- for in 循环
-
变量、函数和操作符
- 变量声明
- 函数声明
- 函数调用间距
- 立即调用的函数
- 相等比较
- eval()
- 原始值的包装类型
-
UI层的松耦合
- 什么是松耦合
- 将JavaScript从CSS中抽离
- 将CSS从JavaScript中抽离
- 将JavaScript从HTML中抽离
- 将HTML从JavaScript中抽离
-
避免全局变量
- 全局变量带来的问题
- 意外的全局变量
- 单全局变量
- 零全局变量
-
事件处理
- 典型用法
- 规则1:隔离应用逻辑
- 规则2:不要分发事件对象
-
避免”空比较”
- 检测原始值
- 检测引用值
- 检测属性
-
将配置数据从代码中抽离
- 什么是配置数据
- 外化配置数据
- 保存配置数据
-
抛出自定义错误
- 错误的本质
- 在JavaScript中抛出错误
- 抛出错误的优点
- 何时抛出错误
- try-catch语句
- 错误类型
-
不是你的对象不要动
- 什么是你的?
- 原则
- 更好的方法
- 关于Polyfills
- 阻止修改
-
浏览器嗅探
- UserAgent嗅探
- 特性检测
- 避免特性推断
- 避免浏览器推断
- 到底该怎么办?
-
文件和目录结构
- 最佳实践
- 基本结构
-
Ant
- 安装
- 打包文件
- 运行打包
- 目标操作的依赖
- 属性
- Buildr程序
-
校验
- 寻找文件
- 任务
- 增强的目标操作
- 其他方面的增强
- Buildr任务
-
连接和加工
- 任务分解
- 行结束符
- 头和尾
- 文件加工
-
文件精简和压缩
- 精简(Minification)
- 压缩(Compression)
-
文档化
- JSDoc Toolkit
- YUI Doc
-
自动化测试
- YUI Test Selenium引擎
- Yeti
- PhantomJS
- JsTestDriver
-
组装到一起
- 被忽略的细节
- 编制打包计划
- 使用CI系统
- 附录:JavaScript编程风格
- 附录:JavaScript工具
编写可维护的javascript
- 附录:JavaScript编程风格
- 附录:JavaScript工具