1 三种基础数据结构1
1.1 栈 1
1.2 堆 3
1.3 队列 4
2 内存空间5
2.1 基础数据类型与变量对象. 5
2.2 引用数据类型与堆内存空间 7
2.3 内存空间管理 9
3 执行上下文11
3.1 实例1 11
3.2 实例2 15
3.3 生命周期 18
4 变量对象20
4.1 创建过程 20
4.2 实例分析 23
4.3 全局上下文的变量对象 26
5 作用域与作用域链27
5.1 作用域 27
5.1.1 全局作用域27
5.1.2 函数作用域28
5.1.3 模拟块级作用域 29
5.2 作用域链 31
6 闭包33
6.1 概念 33
6.2 闭包与垃圾回收机制 38
6.3 闭包与作用域链 39
6.4 在Chrome 开发者工具中观察函数调用栈、作用域链与闭包 41
6.5 应用闭包 49
6.5.1 循环、setTimeout 与闭包49
6.5.2 单例模式与闭包 50
6.5.3 模块化与闭包 53
7 this 59
8 函数与函数式编程67
8.1 函数 67
8.2 函数式编程. 75
8.2.1 函数是一等公民 77
8.2.2 纯函数 80
8.2.3 高阶函数 85
8.2.4 柯里化 91
8.2.5 代码组合 101
9 面向对象106
9.1 基础概念 106
9.1.1 对象的定义106
9.1.2 创建对象 107
9.1.3 构造函数与原型 108
9.1.4 更简单的原型写法114
9.1.5 原型链 114
9.1.6 实例方法、原型方法、静态方法117
9.1.7 继承118
9.1.8 属性类型 122
9.1.9 读取属性的特性值127
9.2 jQuery 封装详解 127
9.3 封装一个拖曳对象. 134
9.4 封装一个选项卡 147
9.5 封装无缝滚动 153
10 ES6 与模块化159
10.1 常用语法知识 160
10.2 模板字符串 167
10.3 解析结构 168
10.4 展开运算符 171
10.5 Promise 详解173
10.5.1 异步与同步173
10.5.2 Promise. 175
10.5.3 async/await 185
10.6 事件循环机制 189
10.7 对象与class 197
10.8 模块化 202
10.8.1 基础语法 204
10.8.2 实例209