被面试虐待之后,发现自己对一些问题了解的不够深入,或者明明会用,但是说不出来,明明自己写的项目却没办法把思路/流程讲明白,还有之前就直接放弃去了解的继承/对原理的深入等等,以后想到了就会尽量把它们整理记录下来
工作中有哪些实际的场景可以用到闭包?
- 闭包:一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起 ——来自MDN(词法环境:根据这个变量的位置来判断它能在哪里使用)
- 解决的问题/使用的目的:在函数内部使用函数外部数据,解决了js没有私有变量的问题
- 回归正题:只要需要私有变量的地方都可以使用闭包,比如防抖节流函数的实现就是用到了闭包,还有开发插件等等,应用场景非常广泛
思维扩展:之前看函数柯里化的时候,一直处于一知半解的状态,这里重新做一下整理
- 固定参数的实现(直接使用闭包,多个参数往下无限写function即可):
- 但实际使用中,参数经常不固定,不固定参数的实现:
- 必须要调用一次空的,好像有点奇怪(之前看别人的实现都是使用toString,不太清楚为什么toString可以判断是不是该返回结果?于是自己试了一下,toString是真的不行,除非手动给函数包一层String……,可以在这里尝试)
- 啊,第一个问题就写了好久,查资料的时候看见别人博客的动画好有意思……然后……就跑偏了……ORZ
- 固定参数的实现(直接使用闭包,多个参数往下无限写function即可):
Axios和Ajax的区别?
- Ajax是基于XHR的封装,依赖于JQuery
- Axios也是基于XHR封装,但是是使用Promise实现的
- Axios更便捷,不依赖于任何框架
Asyc Await是怎么进行错误拦截的
- try/catch
异步的发展进程?
- 回调(事件回调/AJAX)(回调地狱)
- Promise(常用)
- Generator/yield (难以理解)
- Async/Await
VUE中$nextTick的使用场景和实现原理?
- 在dom更新完成之后执行的一个回调
- 实现原理:TODO
继承与原型链
prototype和__proto__的区别
- __proto__指向prototype
- 每个对象创建之后都会有一个__proto__
- prototype是函数的内置属性
- __proto__是对象的内置属性
- 所有的js对象都是Object的实例,继承了Object.prototype的属性和方法
- 实现一个继承 // TODO
- 实现一个简单的双向绑定(就只用了defineProperty)
- 防抖/节流(这个我写出来了!但是因为是个高频问题,也记录一下吧~)
...未完待续
...欢迎指正
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。