为你推荐
内容提要
前言
InfoQ访谈
第1章 种子模块
1.1 模块化
1.2 功能介绍
1.3 对象扩展
1.4 数组化
1.5 类型的判定
1.5.1 type
1.5.2 isPlainObject
1.5.3 isWindow
1.5.4 isNumeric
1.5.5 isArrayLike
1.6 domReady
1.7 无冲突处理
1.8 总结
第2章 语言模块
2.1 字符串的扩展与修复
2.1.1 repeat
2.1.2 byteLen
2.1.3 pad
2.1.4 quote
2.1.5 trim与空白
2.2 数组的扩展与修复
数组的空位
2.3 数值的扩展与修复
2.4 函数的扩展与修复
2.5 日期的扩展与修复
第3章 浏览器嗅探与特征侦测
3.1 浏览器判定
3.2 document.all趣闻
3.3 事件的支持侦测
3.4 样式的支持侦测
3.5 jQuery一些常用特征的含义
第4章 类工厂
4.1 JavaScript对类的支撑
4.2 各种类工厂的实现
4.2.1 相当精巧的库—P.js
4.2.2 JS.Class
4.2.3 simple-inheritance
4.2.4 体现JavaScript灵活性的库——def.js
4.3 进击的属性描述符
4.4 真类降临
第5章 选择器引擎
5.1 浏览器内置的寻找元素的方法
5.2 getElementsBySelector
5.3 选择器引擎涉及的知识点
5.3.1 关系选择器
5.3.2 伪类
5.3.3 其他概念
5.4 选择器引擎涉及的通用函数
5.4.1 isXML
5.4.2 contains
5.4.3 节点排序与去重
5.4.4 切割器
5.4.5 属性选择器对于空白字符的匹配策略
5.4.6 子元素过滤伪类的分解与匹配
5.5 Sizzle引擎
5.6 总结
第6章 节点模块
6.1 节点的创建
6.2 节点的插入
6.3 节点的复制
6.4 节点的移除
6.5 节点的移除回调实现
6.5.1 Mutation Observer
6.5.2 更多候选方案
6.6 innerHTML、innerText、outerHTML、outerText的兼容处理
6.7 模板容器元素
6.8 iframe元素
6.9 总结
第7章 数据缓存模块
7.1 jQuery的第1代缓存系统
7.2 jQuery的第2代缓存系统
7.3 jQuery的第3代缓存系统
7.4 有容量限制的缓存系统
7.5 本地存储系统
7.6 总结
第8章 样式模块
8.1 主体架构
8.2 样式名的修正
8.3 个别样式的特殊处理
8.3.1 opacity
8.3.2 user-select
8.3.3 background-position
8.3.4 z-index
8.3.5 盒子模型
8.3.6 元素的尺寸
8.3.7 元素的显隐
8.3.8 元素的坐标
8.4 元素的滚动条的坐标
8.5 总结
第9章 属性模块
9.1 元素节点的属性
9.2 如何区分固有属性与自定义属性
9.3 如何判定浏览器是否区分固有属性与自定义属性
9.4 IE的属性系统的3次演变
9.5 className的操作
9.6 Prototype.js的属性系统
9.7 jQuery的属性系统
9.8 avalon的属性系统
9.9 value的操作
9.10 总结
第10章 PC端的事件系统
第10章 PC端的事件系统
10.1 原生API简介
10.2 onXXX绑定方式的缺陷
10.3 attachEvent的缺陷
10.4 addEventListener的缺陷
10.5 handleEvent与EventListenerOptions
10.6 Dean Edward“大神”的addEvent.js源码分析
10.7 jQuery的事件系统
10.8 avalon2的事件系统
10.9 总结
第11章 移动端的事件系统
11.1 touch系事件
11.2 gesture系事件
11.3 tap系事件
11.4 press系事件
11.5 swipe系事件
11.6 pinch系事件
11.7 拖放系事件
11.8 rotate系事件
11.9 总结
第12章 异步模型
12.1 setTimeout与setInterval
12.2 Promise诞生前的世界
12.2.1 回调函数callbacks
12.2.2 观察者模式observers
12.2.3 事件机制listeners
12.3 JSDeferred里程碑
12.4 jQuery Deferred宣教者
12.5 es6 Promise第一个标准模型
12.5.1 构造函数:Promise ( executor )
12.5.2 Promise.resolve/reject
12.5.3 Promise.all/race
12.5.4 Promise#then/catch
12.5.5 Promise#resolve/reject
12.5.6 Promsie#notify
12.5.7 nextTick
12.6 es6生成器过渡者
12.6.1 关键字yield
12.6.2 yield*和yield的区别
12.6.3 异常处理
12.7 es7 async/await终极方案
12.8 总结
第13章 数据交互模块
13.1 Ajax概览
13.2 优雅地取得XMLHttpRequest对象
13.3 XMLHttpRequest对象的事件绑定与状态维护
13.4 发送请求与数据
13.5 接收数据
13.6 上传文件
13.7 jQuery.ajax
13.8 fetch,下一代Ajax
第14章 动画引擎
14.1 动画的原理
14.2 缓动公式
14.3 jQuery.animate
14.4 mass Framework基于JavaScript的动画引擎
14.5 requestAnimationFrame
14.6 CSS3 transition
14.7 CSS3 animation
14.8 mass Framework基于CSS的动画引擎
第15章MVVM
15.1 前端模板(静态模板)
15.2 MVVM的动态模板
15.2.1 求值函数
15.2.2 刷新函数
15.3 ViewModel
15.3.1 Proxy
15.3.2 Reflect
15.3.3 avalon的ViewModel设计
15.3.4 angular的ViewModel设计
15.4 React与虚拟DOM
15.4.1 React的diff算法
15.4.2 React的多端渲染
15.5 性能墙与复杂墙
第16章 组件
16.1 jQuery时代的组件方案
16.2 avalon2的组件方案
16.2.1 组件容器
16.2.2 配置对象
16.2.3 slot机制
16.2.4 soleSlot机制
16.2.5 生命周期
16.3 React的组件方案
16.3.1 React组件的各种定义方式
16.3.2 React组件的生命周期
16.3.3 React组件间通信
16.3.4 React组件的分类
16.4 前端路由
16.4.1 storage
16.4.2 mmHistory
16.4.3 mmRouter
彩蛋
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜