北森Besin校招提前批前端工程师
一面(1h)
1、学校立项的项目,负责什么工作,功能的实现,小程序字典查询数据的检索
2、项目用了showdownjs封装markdown编辑器,showndownjs的实现原理?看了源码?
3、讲一下promise的概念,介绍一下promise各个API的使用(讲了then/catch/finally/all)
4、构造函数封装promise.all (不会)
5、get post请求的区别,get post哪个性能更好(这个问的很细)
面试官说一般来说get好一些,但要看具体应用场景,建议我自己练习的时候创造场景体验
6、jsonp的原理和实现
7、原生实现ajax
8、实现深拷贝(讲完基本的方法,面试官追问如果有symbol这些其他数据类型,要怎么实现)
9、原生获取页面元素,修改、移除元素类名
10、提到了jquery,让用jquery获取页面元素
11、你项目的跨域怎么解决的?(我答的CORS,说我的方案不够安全,建议我优化)
12、cookie和token区别,cookie和token哪个更好?安全性问题怎么解决,token缺点
13、vue的生命周期,在哪个钩子向后端请求数据,哪个钩子更新DOM
14、讲缓存的时候误提了server worker(给自己挖坑),问了server worker的概念?
15、wepack plugin和loader区别
16、git命令
17、vue和react为什么学习vue
18、put head delete请求方法的区别,options的应用场景(这个又是自己挖坑)
options问的很细,我答的磕磕巴巴,面试官建议我去看HTTP的那些英文书
19、localstorage的最大存储空间(我答5MB),设了一个场景题:如果只用localstorage存储数据,后端返回海量数据怎么存储?
我没想出来,面试官说可以设计调度算法,给数据设优先级,然后保证足够的存储空间,后面讲到链表的时候,说这里可以用链表解决
反问
1、对我面试的评价
看得出来有一定的实践,但是对原理了解不够深,建议看书看源码,多实践
总结
面试官问的挺细致,灵活考业务场景,会对一个知识点刨根问底,仅仅是看了一些博客的知识深度,很多问题就回答不上来,哎~看书去吧……
#北森#