本书赞誉
译者序
前言
第1章渐进增强模型
1.1渐进增强式网页开发模型的定义
1.1.1渐进增强式开发模型的历史
1.1.2渐进增强式开发模型的目标
1.1.3易访问性
1.1.4代码可读性
1.1.5渐进增强与平稳退化
1.2结构层
1.3表现层
1.3.1内联CSS
1.3.2链接外部样式表
1.4行为层
1.4.1内联JavaScript代码
1.4.2嵌入式JavaScript代码
1.4.3外联式的低调JavaScript代码
1.5渐进增强式开发模型的好处
1.5.1性能
1.5.2适应新趋势
1.5.3触摸界面
1.6渐进增强模型结语
1.7总结
1.8习题
第2章JavaScript语言在浏览器中的运用
2.1JavaScript风云录
2.1.1源起
2.1.2渐进增强模型
2.1.3行为层
2.1.4JavaScript的未来
2.2浏览器与JavaScript代码的交互
2.2.1HTTP请求
2.2.2JavaScript引擎与渲染引擎
2.3JavaScript语言能做什么
2.3.1修改HTML文档
2.3.2与服务器通信
2.3.3存储数据
2.4JavaScript的正确用法
2.4.1改善用户体验
2.4.2编写可靠的JavaScript代码
2.4.3创建备用方案
2.5JavaScript辅助开发工具
2.5.1语言内置的工具
2.5.2浏览器中的工具
2.6总结
2.7习题
第3章JavaScript术语解析
3.1基本术语
3.1.1文档对象模型(DOM)
3.1.2父节点
3.1.3子节点
3.1.4兄弟节点
3.1.5变量
3.1.6字符串
3.1.7注释
3.1.8操作符
3.1.9usestrict指令
3.2数据存储方式
3.2.1缓存
3.2.2数组
3.2.3cookies
3.2.4JavaScript对象表示法(JSON)
3.2.5对象
3.3创建交互层
3.3.1循环
3.3.2条件语句
3.3.3switch语句
3.3.4函数
3.3.5匿名函数
3.3.6回调函数
3.3.7方法
3.3.8事件
3.3.9Ajax
3.4总结
3.5习题
第4章操作文档对象模型
4.1文档对象模型是什么
4.2DOM结构树
4.2.1元素节点
4.2.2文本节点
4.2.3属性节点
4.3处理元素节点
4.3.1根据ID定位元素
4.3.2根据标签名称定位元素
4.3.3根据class属性定位元素
4.3.4在JavaScript中使用CSS选择器来定位节点
4.4处理属性节点
4.4.1获取属性
4.4.2设置属性
4.4.3移除属性
4.5处理文本节点并修改其内容
4.6遍历DOM
4.6.1访问首尾两个子节点
4.6.2在DOM中动态地添加和移除节点
4.6.3向DOM中新增元素
4.6.4从DOM中移除元素
4.7总结
4.8习题
第5章JavaScript数据存储
5.1变量
5.1.1字符串
5.1.2数值
5.1.3Boolean
5.1.4与变量相关的性能问题
5.2数组
5.2.1基本数组
5.2.2关联数组
5.2.3多维数组
5.2.4向数组中新增数据
5.2.5数组对象各方法的使用
5.3join方法
5.4slice方法
5.5shift与unshift方法
5.6pop方法
5.7concat方法
5.8sort方法
5.9对象
5.10JSON
5.10.1使用JSON格式的好处
5.10.2调用API
5.11HTML5标准中的网络数据存储方式
5.12setItem方法
5.13getItem方法
5.14removeItem方法
5.14.1以JSON格式存放大量数据
5.14.2编写健壮的网络存储代码
5.15总结
5.16习题
第6章变量、函数及循环
6.1定义变量
6.1.1将变量集中到一起
6.1.2保留字
6.2函数
6.2.1普通函数
6.2.2匿名函数
6.3作用域
6.3.1回调函数
6.3.2返回数据
6.3.3将函数作为方法使用
6.4循环
6.5条件语句
6.5.1if语句
6.5.2if
else语句
6.5.3switch语句
6.5.4if与switch语句的对比
6.6综合运用本章所学内容
6.7总结
6.8习题
第7章以事件处理实现用户交互
7.1设置事件处理程序
7.1.1事件处理器
7.1.2事件监听器
7.1.3事件绑定
7.1.4解除事件绑定
7.2鼠标与键盘事件
7.2.1click事件
7.2.2focus与blur事件
7.2.3易访问性
7.2.4change事件
7.2.5mouseover与mouseout事件(处理鼠标悬停)
7.2.6submit事件
7.2.7阻止浏览器的默认行为
7.2.8keydown、keypress与keyup事件
7.2.9本节代码汇总
7.3触摸及方向变换事件
7.3.1touchstart与touchend事件
7.3.2touchmove事件
7.3.3orientationchange事件
7.3.4支持触摸事件的设备
7.4触摸事件相关代码汇总
7.5总结
7.6习题
第8章通过Ajax与服务器通信
8.1Ajax的历史
8.1.1服务器通信
8.1.2XMLHttpRequest对象
8.2创建Ajax调用
8.2.1向服务器发送请求
8.2.2接收服务器传回的数据
8.2.3反复执行Ajax调用
8.3Ajax数据格式
8.3.1XML
8.3.2HTML
8.3.3JSON
8.4Ajax的易访问性
8.5Ajax常见误区
8.6本章代码汇总
8.7Ajax的未来
8.8总结
8.9习题
第9章代码组织方式
9.1通用代码风格规范
9.1.1作用域
9.1.2在遇到错误时尽快终止
9.1.3用户体验
9.2代码设计
9.2.1文件与目录结构
9.2.2文档内的脚本
9.2.3变量声明
9.2.4变量与函数的命名
9.2.5注释
9.2.6缩进
9.2.7空格
9.2.8语句内间隔
9.2.9断行
9.2.10数学运算与操作符
9.2.11eval()的用法
9.2.12不宜制定过于死板的代码风格
9.3代码结构
9.3.1函数
9.3.2匿名函数
9.3.3以变量形式出现的函数
9.3.4以方法形式出现的函数
9.3.5JavaScript开发模式
9.4总结
9.5习题
第10章用程序库更便捷地编写JavaScript代码
10.1JavaScript程序库基础
10.1.1程序库的学习过程
10.1.2语法
10.1.3专注于目标
10.1.4创造捷径
10.1.5解决浏览器兼容性问题
10.1.6流行的程序库
10.2jQuery基础知识
10.2.1document.ready
10.2.2选择器
10.2.3遍历DOM
10.2.4添加样式信息
10.2.5事件绑定
10.2.6动画
10.3jQuery中的非基础知识
10.3.1使用jQuery库执行Ajax调用
10.3.2用jQuery遍历数据
10.3.3函数链
10.4以插件扩展程序库
10.5使用程序库的好处
10.5.1流行度与社区支持度
10.5.2高效代码
10.6使用程序库的缺点
10.6.1开销
10.6.2性能
10.6.3对程序库的过分依赖及其寿命问题
10.7微型程序库的使用
10.7.1微型程序库的优点
10.7.2微型程序库的缺点
10.8总结
10.9习题
第11章HTML5JavaScriptAPI
11.1HTML5是什么
11.2新标记(新HTML元素)
11.2.1创建更好的语义
11.2.2构建更易访问的内容
11.3JavaScriptAPI
11.3.1navigator对象
11.3.2地理位置API
11.3.3音频与视频
11.3.4HistoryAPI
11.3.5工作线程
11.4DeviceAPI
11.4.1电池状态API
11.4.2震动API
11.4.3网络信息API
11.5通过功能检测技术来尝试新的API
11.6总结
11.7习题
第12章JavaScript深入研究指要
12.1对关键知识点的简要回顾
12.1.1渐进增强模型
12.1.2操作DOM
12.1.3数据存储
12.1.4服务器通信
12.2适合网站设计师的JavaScript研究方向
12.2.1高级界面设计
12.2.2用JavaScript代码操控CSS渐变效果
12.2.3与桌面操作系统交互
12.3适合网站开发者的JavaScript研究方向
12.3.1JavaScript模板
12.3.2通过Node.js库以JavaScript语言实现服务器程序
12.4总结
12.5习题
参考答案