作用域
1.局部作用域
1.1 函数作用域
1.2 块作用域
2.全局作用域
3.作用域链
4.垃圾回收机制
4.1 内存的生命周期
4.2 引用计数
4.3 标记清除法
5.闭包
5.1闭包作用
5.2 闭包应用
6.变量提升
函数进阶
1.函数提升
2.函数参数
2.1 动态参数
2.2 剩余参数
3 展开运算符
4.箭头函数
4.1 基本语法
4.2 箭头函数参数
4.3 箭头函数this
解构赋值
1.数组解构
1.1 基本语法
1.2 典型应用
1.3 js前面必须加分号情况
1.4 变量多 单元值少的情况
1.5 利用剩余参数解决变量少 单元值多的情况
1.6 防止有undefined传递单元值的情况,可以设置默认值
1.7 按需导入,忽略某些返回值
1.8 支持多维数组的结构
2.对象解构
2.1 基本语法
2.2 数组对象解构
2.3 多级对象解构
3.遍历数组forEach方法
深入对象
1.创建对象三种方式
2.构造函数
2.1 实例化执行过程
3.实例成员和静态成员
3.1 实例成员
2.2 静态成员
内置构造函数
1.Object
1.1 Object.keys
1.2 Object.values
1.3 Object.assign
2.Array
2.1 数组常见实例方法-核心方法
2.2 reduce
2.3 数组常见方法-其他方法
3.String
编程思想
1.面向过程介绍
2.面向对象编程
3.面向过程和面向对象的对比
构造函数
原型
1.原型-this指向
2.constructor属性
3.对象原型
4.原型继承
5.原型链
深浅拷贝
1.浅拷贝
1.直接赋值的问题
1.2 浅拷贝常见方法
1.3 存在的问题
2.深拷贝
2.1 通过递归实现深拷贝
2.2 利用lodash和JSON实现深拷贝
2.3 通过JSON.stringify()实现
异常处理
1.throw抛异常
2.try/catch捕获错误信息
3.debugger
处理this
1.this指向
1.1 普通函数
1.2 箭头函数
2.改变this
3.1 call()
3.2 apply()
3.3 bind()
4.防抖
5.节流