第一部分 向我的小朋友JavaScript问好
第1章 JavaScript简史
1.1 JavaScript的问世
1.2 JavaScript的发展:出牙期的疼痛
1.2.1 但它是相同的代码:浏览器的不兼容
1.2.2 蜗牛和大象:JavaScript性能和内存问题
1.2.3 所有罪恶的根源:开发者!
1.2.4 DHTML——魔鬼的时髦词
1.3 进化还在继续:接近可用性
1.3.1 建立一个更好的窗口小部件:代码结构
1.3.2 重拾好习惯
1.4 终极进化:专业的JavaScript
1.4.1 浏览器
1.4.2 面向对象的JavaScript
1.4.3 “负责的”JavaScript:迹象和前兆
1.5 小结
第2章 成功的JavaScript开发者的7个习惯
2.1 更多面向对象的JavaScript
2.1.1 简单的对象创建
2.1.2 使用JSON创建对象
2.1.3 类的定义
2.1.4 原型
2.1.5 你应该使用哪种方法呢
2.1.6 面向对象的好处
2.2 柔性衰减和不唐突的JavaScript
2.2.1 让JavaScript保持独立
2.2.2 允许柔性衰减
2.2.3 不要使用浏览器嗅探例程
2.2.4 不要写浏览器相关或者语言相关的JavaScript代码
2.2.5 合适的变量作用域
2.2.6 别用鼠标事件来触发需要的事件
2.3 并不只是为了秀:关注可访问性
2.4 当生活赐予你葡萄,就酿成酒吧:错误处理
2.5 当它并没有向正确的方向发展时:调试机制
2.6 让生活更加美好的浏览器扩展
2.6.1 Firefox扩展
2.6.2 IE扩展
2.6.3 Maxthon扩展:DevArt
2.7 JavaScript库
2.7.1 Prototype
2.7.2 Dojo
2.7.3 Java Web Parts
2.7.4 script.aculo.us
2.7.5 YUI库
2.7.6 MochiKit
2.7.7 Rico
2.7.8 Mootools
2.8 小结
第二部分 项目
第3章 Hodgepodge:构建可扩展的JavaScript库
3.1 Bill,菜鸟的一天
3.2 全面的代码组织
3.3 创建包
3.3.1 构建jscript.array包
3.3.2 构建jscript.browser包
3.3.3 构建jscript.datetime包
3.3.4 构建jscript.debug包
3.3.5 构建jscript.dom包
3.3.6 构建jscript.form包
3.3.7 构建jscript.lang包
3.3.8 构建jscript.math包
3.3.9 构建jscript.page包
3.3.10 构建jscript.storage包
3.3.11 构建jscript.string包
3.4 测试所有代码片段
3.5 练习
3.6 小结
第4章 CalcTron 3000:JavaScript计算器
第5章 怪物混合:混搭
第6章 不要只考虑眼前:客户端的持久对象
第7章 JSDigester:消除客户端XML的痛苦
第8章 做正确:JavaScript验证框架
第9章 痴迷于窗口小部件:使用GUI窗口小部件框架
第10章 支持拖放的购物车
第11章 休息时间:JavaScript游戏
第12章 Ajax:客户端和服务器端相遇