// 会输出:
{
totalElementsCount: 7,
maxDOMTreeDepth: 4,
maxChildrenCount: 3
}
题三:
// 3.请使用原生代码实现一个Events模块,可以实现自定义事件的订阅、触发、移除功能
/*
const fn1 = (… args)=>console.log(‘I want sleep1’, … args)
const fn2 = (… args)=>console.log(‘I want sleep2’, … args)
const event = new Events();
event.on(‘sleep’, fn1, 1, 2, 3);
event.on(‘sleep’, fn2, 1, 2, 3);
event.fire(‘sleep’, 4, 5, 6);
// I want sleep1 1 2 3 4 5 6
// I want sleep2 1 2 3 4 5 6
event.off(‘sleep’, fn1);
event.once(‘sleep’, ()=>console.log('I want sleep));
event.fire(‘sleep’);
*/
周末,人在梦游,刚下航母,就激灵灵接到电话,人还是糊的……
-
跨端的原理?我讲了几个例子:taro、uni-app,顺便提了 flutter、react native、小程序等的架构,具体怎么设计的。
-
动态表单能够运用在什么场景?我举了 7、8 个例子。
-
移动端适配相关的问题,应用场景。
-
我公司的业务讨论,是否了解过竞品等等,这里略过。
-
对于你项目的竞品有了解吗?说一下
-
你的项目与竞品相比,好在哪里,有什么优势?
-
下班后都在做什么,问的都是过往经历,问的太详细了,让人不舒服。
-
如果与同事发生了意见的不一致,你会如何解决呢
-
现在针对我们的业务,急需增加一个新的模块位置,你会怎么设计?数据怎么展示……
-
没错,hr 还问技术相关的问题。
总体面下来没有让人紧张的感觉,中规中矩,从刚开始较高的心理预期到后面慢慢回落……由于我的水平有限,最终没有争取到多高的薪水。
-
看源码,整理 Vue 与 React 框架的所有横向对比,包括渲染原理、虚拟 dom、diff、patch、fiber、批量更新,手写响应式,框架用到的模式、设计思想,性能优化,相关生态技术等等。
-
webpack 原理、热更新原理、动态加载原理、常见 plugins、loader、常见优化,怎么打包、怎么分 chunk,怎么写一个 plugins,生命周期,微内核源码等内容,以及 rollup、gulp 的使用、应用场景。(我记得有一面一个考官对我说,你对整个研发流程都很清楚,但都并不深入,比如一个 webpack 打包分包的依据怎么判定……emmmm,我倒是会,你也不问我啊!)
-
跨端框架的研究,工程化的梳理,使用的技术栈的坑,移动端的一些实践,面试时额外准备的项目复盘,竞品调查,对方产品的资料,测试系列,还有很多如微前端、中台、serverless、可视化、Wasm 等就不举例了。
-
除此之外,我也看了很多面经、以及技术文章。
我把看过的面试题做了一个汇总整理,居然有280页PDF,无偿分享给大家,算是一个感恩回馈吧,有需要的朋友【点击我】无偿获取。
点击此处蓝色字体280页《前端校招面试真题解析大全》查看详细内容。
掌握了以上内容,我们应该算是有一点知识广度了也能从容地应对前面的技术面了,当然,这不是短短几个月就能达成了,要时间的积累,那些一年就资深的牛人也是在大学甚至更早的时候就开始积累的,这一关逃不掉。
到此,“技术面” 这只老虎应该能打个半死,直接干倒是不可能的,以上的知识对于校招可能足够,但社招不一定用的上,哈哈。
然后就是社招的重点:业务面,怎么说呢,就是多思考多总结吧,深入思考,对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩。
挑出你项目中的亮点,要被别人认可的亮点,这个比较难,各位只能自求多福了,也是我本人的短板,当时也是鸡蛋里挑骨头,这是我这次找工作遇到的最大拦路虎,业务太简单,你眼中的亮点面试官觉得不是……
很多面经都说回答问题时,思考一下再回答,为了组织语言,但有时候,你明明懂,在紧张的情况下反而会将关键信息跳过,答的让人不知所云。要做到:“想清楚,说明白,知道说什么,怎么说”,还是有一点难度的,关系到平常一点一滴的积累,这方面我上面已经提供了一点方向。剩下的就是面试阶段好好发挥了,没什么太好的办法,我这里建议:
-
回答问题前思考一下,虽然不保证有用,但还是要好好履行的。
-
多面几次,指的不同公司,只要你不嫌累。
-
在面试某一家公司时,根据前面的面试,尝试推测后续考官会问到的业务的大致范围,或者问内推同学,提前做准备。一般会问:1 你简历上的项目,2 对方部门知名的产品,3 招聘 jd 上的 title。
-
简单的复盘,保证别倒在同样的问题上。
-
增加知识的广度,可以引导向别的问题,考官也是乐意听的。
-
挑个面试的好时间,比如我本人,早上 10 点我的脑子无比灵光,说话都带着沉稳富有磁性……晚上 7 点后,就会莫名紧张,声音分贝提高几个点略微沙哑,这个真的因人而异。有时候沉稳不一定是好事,紧张反* 倒促使你偶有妙语和想法,当然也可能搞砸。
-
找几个方法迅速调整好你的精气神,在前面基础学习的时候也可以用上。
-
如果你够厉害,可以适当暗示和引导面试官问些你擅长的,千万不要被牵着鼻子走。
最后,拜佛烧香,求个好运。人和人的差异,在于认知和思考力的差异。假如你一时之间思维没有一个质的变化,不如求个好运。没有一个好的运气,上面的建议可能通通都不好使,毕竟社招面试内容本身就是不稳定的,有的重技术、有的重算法、有的重业务、有的重学历、有的重眼缘……
这一块算是补的,我依然只给建议:
-
如果你玩游戏的话,请放弃游戏,或者戒掉一段时间,直到找到满意工作。
-
找到你的痛点。
-
分段学习,制定符合周期的计划。不要逼着自己,否则压力会让你崩溃的。
-
找点鸡汤,或者去找点你没有但渴望得到的东西。
-
业务方面,多看点书,多总结积累一些思考方式。
最后灵魂一问:
-
你的梦想是进大厂吗?你明白的,这需要一点小小的代价。
-
你是万中无一的奇才?如果不是,那么失败几次是正常的,大家都是普通人,也许只是不 match。
最后
文章到这就结束了,我的水平有限,我也不知道这篇面经能够拯救几个娃,相信很多人跟我一样都会有一个进大厂的梦吧。春招将至,希望大家都能在春招当中拿到自己满意的 offer。最后,能看到这里的小伙伴顺手点个赞吧。
对象篇
模块化编程-自研模块加载器
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】