内容简介
javascript的世界
第一部分 经典javasc ript
第1章 javascript不只是简单的构件块
1.1 javascript对象、基本类型和字面值之间的区别
1.2 从字符串提取一个列表
1.3 检查一个存在的、非空的字符串
1.4 插入特殊字符
1.5 使用新字符串替换模式
1.6 找到并突出显示一个模式的所有实例
1.7 使用捕获圆括号交换一个字符串中的单词
1.8 使用命名实体来替代html标签
1.9 把一个iso 8601格式的日期转换为date对象可接受的一种格式
1.10 使用带有定时器的函数闭包
1.11 记录消耗时间
1.12 把十进制数转换为一个十六进制值
1.13 把表中一列的所有数字加和
1.14 在角度和弧度之间转换
1.15 找到页面元素可容纳的一个圆的半径和圆心
1.16 计算圆弧的长度
1.17 使用es6字符串新增方法而不会丢弃用户
第2章 javascript数组
2.1 在数组中搜索
2.2 用concat()和apply()将一个两维数组扁平化
2.3 删除或替换数组元素
2.4 提取一个数组的一部分
2.5 对每个数组元素应用一个函数
2.6 使用foreach()and call()遍历queryselectorall()的结果
2.7 对数组中的每个元素执行一个函数并返回一个新数组
2.8 创建一个过滤后的数组
2.9 验证数组内容
2.10 使用一个关联数组来存储表单元素名和值
2.11 使用解构赋值简化代码
第3章 函数:javascript的构建块
3.1 放置函数并提升
3.2 把一个函数当做参数传递给另一个函数
3.3 实现递归算法
3.4 使用一个定时器和回调防止代码阻塞
3.5 创建能够记住其状态的函数
3.6 把函数参数转换到一个数组中
3.7 使用一个局部应用减少冗余性
3.8 使用缓存计算(memoization)来提高应用程序性能
3.9 使用匿名函数包装全局变量
3.10 提供一个默认的参数
第4章 可扩展的javascript对象
4.1 保持对象成员私有
4.2 用原型扩展对象
4.3 继承一个对象的功能
4.4 通过定义一个新的属性来扩展对象
4.5 阻止对象可扩展性
4.6 阻止对对象的任何修改
4.7 为你的javascript对象提供命名空间
4.8 用prototype.bind再次发现“this”
4.9 将对象方法链化
第5章 javascript和直接访问用户界面
5.1 访问一个给定的元素并找到其父元素和子元素
5.2 访问web页面中所有的图像
5.3 使用selectors api找出文章中的所有图像
5.4 设置元素的css样式属性
5.5 对无序列表应用条纹主题
5.6 找出共享同一属性的所有元素
5.7 插入一个新的段落
5.8 给新的段落添加文本
5.9 从html表格删除行
5.10 添加一个页面覆盖
5.11 创建可折叠的表单区段
5.12 隐藏页面区段
5.13 创建基于悬停的弹出信息窗口
5.14 显示一个带颜色的闪烁以表示一个动作
第6章 基本测试和可访问性
6.1 使用jshint清理代码
6.2 使用qunit测试代码
6.3 在各种环境中测试应用程序
6.4 不同编码技术的性能测试
6.5 突出显示错误的可访问性
6.6 创建一个可访问性自动更新区域
第7章 创建和使用javascript库
7.1 找到完美的库
7.2 使用modernizr.load测试功能
7.3 超越math对象的能力
7.4 求出两个日期之间相差的天数
7.5 使用一个外部库:构建于jquery框架之上
7.6 使用一个jquery插件
7.7 使用mousetrap处理键盘快捷键
7.8 使用工具库underscore
7.9 打包你的代码
7.10 添加对私有数据成员的支持
7.11 简化你的库
7.12 寄存库
7.13 通过cdn服务代码
7.14 把库转换为一个jquery插件
7.15 安全地把几个库组合到你的应用程序中
第8章 简化的客户端-服务器通信和数据
8.1 处理从ajax调用返回的一个xml文档
8.2 从一个xml树提取相关信息
8.3 解析一个json格式化字符串
8.4 使用json把一个对象转换为过滤的/转换的字符串
8.5 (使用jsonp)对另一个域进行ajax请求
8.6 处理来自一个ajax请求的json
8.7 从服务器填充一个选项列表
8.8 使用定时器以新数据自动更新页面
第9章 创建富媒体和交互web效果
9.1 在画布中创建一个动态的线条图表
9.2 向一个svg文件添加javascript
9.3 从web页面脚本访问svg
9.4 在html中加入svg和画布元素
9.5 当一个音频文件开始播放的时候运行一个例程
9.6 用javascript和video元素控制视频
9.7 通过画布为视频添加过滤效果
第二部分 javascript全面兴起
第10章 新的ecmascript标准对象
10.1 在浏览器应用程序中使用let
10.2 创建非重复值的一个集合
10.3 用唯一的不同的键创建唯一的键/值对
10.4 创建绝对唯一的对象属性键
10.5 使得遍历任务变简单
10.6 创建优雅地结束的函数
10.7 使用proxy实现即时对象行为修改
10.8 创建一个真正的类并扩展它(略微借助于traceur)
10.9 使用promise实现高效异步处理
第11章 node:服务器上的javascript
11.1 响应一个简单浏览器请求
11.2 提供格式化的数据
11.3 读取和写入文件数据
11.4 在node中使用let和其他的es6添加
11.5 使用repl交互式地尝试node代码段
11.6 从终端获取输入
11.7 使用node定时器并理解node事件循环
11.8 管理回调地狱
11.9 用一个node应用程序访问命令行功能
11.10 在同一端口上运行node和apache
11.11 保持一个node实例启动并运行
11.12 监控应用程序修改和重启
11.13 用request进行屏幕抓取
11.14 在commander的帮助下创建一个命令行工具
第12章 模块化和管理javascript
12.1 使用脚本加载器来加载脚本
12.2 以html5的方式异步加载脚本
12.3 将javascript转换为amd和requirejs
12.4 将requirejs和jquery或其他的库一起使用
12.5 加载和使用dojo模块
12.6 使用npm安装和维护node模块
12.7 通过npm搜索一个具体的node模块
12.8 将你的库转换为node模块
12.9 将自己的代码应用到所有环境中
12.10 创建一个可安装的node模块
12.11 使用bower打包和管理客户端依赖性
12.12 用browserify编译node.js模块以便在浏览器中使用
12.13 对你的node模块进行单元测试
12.14 用grunt运行任务
第13章 api的乐趣
13.1 通过一个restful api访问json格式的数据
13.2 使用restify创建一个restful api
13.3 在桌面浏览器中支持类似移动平台的通知
13.4 在浏览器中本地加载文件
13.5 使用web worker和file api创建一个mini的e-pub阅读器
13.6 探索google maps和其他的api
13.7 从一个node应用程序访问twitter api
第14章 javascript框架
14.1 使用express-generator生成一个express站点
14.2 将一个生成的express站点转换为一个基本的mvc app
14.3 选择一个spa框架:解构todomvc
14.4 使用oauth框架
14.5 用web组件扩展可能性
第15章 高级客户端一服务器通信和流
15.1 允许跨域请求
15.2 在ajax中实现一个put请求
15.3 通过ajax发送二进制数据并加载到图像中
15.4 跨域共享http cookies
15.5 在客户端和服务器之间建立双向通信
15.6 使用变换流上传和压缩文件
15.7 测试websockets应用程序的性能和功能
第16章 数据可视化和客户端/服务器图形
16.1 使用d3创建一个svg柱状图
16.2 用雷达图映射数据点变化
16.3 通过websocket形成一个滚动的时间线
16.4 产生所生成的web页面内容的屏幕截图(phantomjs)
16.5 将图形转换为文本(ocrad.js)
16.6 裁剪(或者叫做修改)上传的图像
第17章 数据和持久性
17.1 验证表单数据
17.2 使用html5持久化信息
17.3 针对客户端存储使用sessionstorage
17.4 创建一个localstorage客户端数据存储项
17.5 使用squeljs查询一个mysql数据库
17.6 使用indexeddb在客户端持久化较大的数据块
17.7 使用dropbox数据存储访问云中的数据
第18章 javascript迈上移动之路
18.1 创建一款可安装的、寄存的web app
18.2 为amazon appstore打包web app
18.3 使用cordova(phonegap)构建一款基本的android app
18.4 将where am i移植到android
18.5 创建一个geolocation firefox os app
18.6 将geolocation app移植到一个google chrome app
18.7 在kindle fire os环境中发布geolocation app
18.8 调试android或amazon fire os app
18.9 获取有关设备的信息
附录a认识jsbin和jsfiddle