文章目录
- 深浅拷贝
- 浅拷贝
- 深拷贝
- 异常处理
- thorw抛异常
- try/catch捕获异常
- debugger
- 处理this
- this指向
- 改变this
- 性能优化
- 防抖
- lodash实现防抖
- 手写防抖函数
- 节流 - throttle
深浅拷贝
浅拷贝
深拷贝
深拷贝有三种方式
-
通过递归实现深拷贝
一定先写数组再写对象
-
lodash/cloneDeep
-
通过JSON.stringify()实现
异常处理
thorw抛异常
try/catch捕获异常
debugger
处理this
this指向
普通函数this指向
箭头函数this指向
改变this
JavaScript中还允许指定函数中this的指向,有三个方法可以动态指定普通函数中this的指向
-
call()
-
apply()
- bind()
总结
性能优化
防抖
lodash实现防抖
手写防抖函数
节流 - throttle
-
lodash实现节流函数
-
手写一个节流函数
为什么使用timer = null的操作?
因为在setTimeout中是无法删除定时器的,因为定时器还在运作所以使用timer = null
视频节流 -
存储节流的时间
-
获取节流的时间