面试题记录:
https://github.com/khno
有兴趣可以私信我加入这个组织,共同维护。
1、移动端优化
2、promise了解,多个promise同时执行,其中最慢的一个promise要执行一个函数,怎么做
3、css选择器权重
4、函数式编程和传统编程区别?
5、redux是用的什么设计模式编程?(javascript设计模式:单例模式、观察者模式、工厂模式(阅读threejs源码的时候发现很多地方都用到了设计模式,优化了性能))
6、性能优化方面,你会如何分类,有哪些方式?(比如:浏览器dom加载、dns解析、资源请求方面)
7、js执行环境、上下文、原型链
8、介绍flex(弹性布局)
flex核心概念:容器和轴。
(reference: https://juejin.im/post/58e3a5a0a0bb9f0069fc16bb)
9、Promise/A+规范
10、说说npm2和npm3区别
11、git merge 和 git rebase区别
12、当用户使用的产品出现白屏或报错,你会用什么方式去处理解决?
13、读过什么源码?
14、git上有没有提交过代码(维护框架类型)
15、所做项目亮点
16、哪些操作会造成内存泄露?什么是内存泄漏?什么是标记清除
settimeout第一个参数为字符串会引发内存泄漏
闭包、控制台日志、循环(2个对象彼此引用且彼此保留)
17、浏览器重绘、重写
18、层叠顺序、堆栈上下文
19、路由实现方式
20、进程与线程的区别
21、说了一下React的设计思想,它带来的改变,有什么优点。然后开始从源码的角度上讲(个人读过部分React源码,在简历中写明),从babel转码JSX开始讲,然后讲了ReactDOM.render()的一整套流程,setState的一整套流程,还有differ算法(differ算法我讲了React的和Vue的),因为个人实现过一个类React框架,所以对于这个流程还是比较了解的,面试官问的几个问题都答出来了(个人建议多了解一下源码,能直接看项目源码就直接看,最次也要看几篇讲源码的文章,我碰到的几个大厂都问了这方面的问题)。
22、HTTP协议有哪些方法,get和post有什么区别,其他的有了解吗,你熟悉的状态码有哪些?
23、自己感觉最有挑战性的项目
24、在简历中说自己实现过类React框架,面试官问我babel的原理,具体怎么做的?
25、怎么用CSS实现一个正方形
26、CSS值的解析过程
27、()=>{a:1}该箭头函数返回值是什么,理由。
28、