2020前端面试集锦

从2月9号返沪开始准备面试,将近一个月的时间,从知识复习到视频面试,再到最终拿下offer。趁着记忆还比较清晰,谈谈自己对前端混合开发面试的一些看法,希望能给大家带来一些帮助和启发,不管是找工作面试还是自我提升。
一,前端现状
过去一个月时间里我大概面试了5家公司,因为受疫情的影响,基本都是通过电话或者在线视频的方式完成的。话说视频面还真是卡顿,经常听不清面试官的问题,最后没办法都直接电话面了,看来5G的普及还是很有必要的,再也不质疑5G是不是伪需求了。
从这几次的面试情况来看,公司对前端工程师的要求确实提高了,不仅要求开发相关的基本知识,还涉及到性能调优,底层框架原理,手写源码,以及数据结构和算法。目前公司的前端技术栈都不止一种,根据业务需求,可能好几种技术栈并存,公司为了节约沟通成本,往往会比较青睐于多技术栈的前端候选人。特别是面试架构类的岗位,因为需要支持多条业务线,对技术的广度和深度要求更高。
二,面试准备
前端面试的同学不管以前主要从事哪一种技术栈的开发,都可以了解下Native,H5,ReactNative和Flutter。建议从UI绘制,用户事件监听和分发,js和native的相互调用这几个方面去准备,面试中问的比较深的不外乎这几个框架的相关处理流程和原理。
还有就是数据结构和算法,可以去LeetCode上面刷题,如果太多来不及,可以先刷《箭指offer》。里面的题需要反复做,最好能灵活运用,举一反三,面试的时候不一定需要当场手写算法,但是一定要说出完整过程。有时候面试官还会问一些变种问题,时间复杂度和空间复杂度也特别需要关注。比如对于数组,如果要求空间复杂度为O(1),那就意味着不能借助其他数据结构,所有的计算过程只能在这个数组上完成,一下子提高了算法的复杂性。
除了LeetCode,大家也可以看看小灰的《漫画算法》,里面对算法的应用讲得比较多,面试的时候比较实用。面试除了直接出题考数据结构和算法,也会出一些具有业务场景的题,比如遍历Dom算出节点总数量,特定标签的数量,数量最多的标签等。算法很考验一个人的逻辑思维能力,我们现在广泛使用的技术架构,像Redis缓存,数据库存储,Jvm垃圾回收等都蕴涵了优秀的算法设计思想。曾经看到过这样一句话,虽然一个框架的发扬流传需要多人协作,广泛使用,不断更新迭代,但它最初的邹形和最原始的设计理念往往都是由一个人来完成的。如果你想在技术这条道路上挖得更深,走得更远,那么数据结构和算法肯定是一道不可避免的坎。
三,面试题整理
1,Android应用启动流程
2,应用性能调优
3,内存泄露的原因以及预防
4,Activity在消息处理回调前销毁
5,Handler消息处理机制,Looper消息循环模型
6,Android应用签名原理,加固,混淆
7,Android插件化开发,热修复
8,okhttp框架,怎么减缓服务器压力
9,数据持久化存储的方式和比较
10,页面卡顿的原因,处理方法

11,进程,线程以及相关的锁机制,乐观锁,悲观锁
12,volatile关键字的作用
13,手写EventBus,EventEmitter
14,HashMap底层结构,ConcurrentHashMap的锁机制,和HashTable比较有什么优点
15,垃圾回收算法,引用类型,环形引用回收问题
16,数据库操作,简单的sql语句,事务提交
17,RecyclerView的优点,和ListView的比较

18,用户输入url存储和根据关键字筛选,需要考虑海量数据的存储和筛选情况
19,找出数组中没有出现的最小正整数
20,数组的二分查找
21,排序算法,快速排序
22,栈和队列的操作
23,LRU算法

24,vue3.0新特性
25,js事件循环模型
26,不同Activity的H5页面之间通信
27,浏览器的强缓存和协商缓存
28,小程序开发
29,ReactNative和Native端的通信,包括组件和方法调用,JsBridge的注册
30,Flutter的渲染和用户事件处理,和Native端的通信

以上就是我这次面试的感受和面试题的分享,希望可以给你带来帮助,预祝大家早日收到心仪的offer, 共勉。

发布了48 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41480546/article/details/105029390