年末的大厂前端面试总结(20届双非二本)-终入字节

关注若川视野, 回复"pdf" 领取资料,回复"1",可加群长期交流学习

自我介绍

双非二本,软件工程,自学前端,今年毕业。

喜欢编程,古风,日语和英语。

常以冷月心之名混迹前端江湖,也曾在混迹网文圈时用冷月心做笔名签约掌阅,作品《清起风云》,百度可查。

求职期间写了一个小博客,感兴趣的可以看看 https://lengyuexin.github.io/gatsby

为什么离职

这个问题,几乎我参加的每一场面试都会问到。我是2020.7.1毕业,最后离职日期是2020.12.18。这段工作经历很短,被问到也很正常。最主要原因还是追求更大的发展空间和技术突破。

在我导师跳槽去美团后,团队内就出现了明显的技术断层。我遇到的某些问题,能够与之商量的同事也越来越少。至于源码,数据结构和算法层面的交流就更少了。

而这些深层次的东西,才是真正意义上的技术栈,是真真正正能提高个人技术能力和核心竞争力的东西。

跳槽前该考虑的事

在我看来,决定是否跳槽成功的核心因素有两个:个人技术能力和当前招聘市场的大环境。建议先将自身技术能力和招聘要求做一个比对,如果觉得可以胜任,再去投递也不迟。至于市场环境,大概是金三银四,金九银十和年末扩招三大阶段吧。

如果技术已经准备ok,简历也完善过,那就可以开始投递了。内推也好,其他招聘软件也好,自行选择即可。

最最最重要的一件事,不建议裸辞。如果裸辞,做好心理准备。大多数情况下,换一份满意的工作,整个面试流程加offer审核到offer call再到最终邮件offer,耗时一个月是很正常的。在职面试都会有焦虑感,更何况是裸辞。

如果工作年限很短,又是裸辞,那我只能说在简历筛选上会很吃亏。比如我,投字节15个岗位,都被干掉,到第16个才约上面试。投快手4次内推,被干掉4次,最快的一次一小时左右就把我干掉了。不得不说,快手效率还是到位的。不死心的我又投了第五次,成功约上了面试。至于后来为什么能再约上猿辅导,百度,58同城,去哪儿网,美团的面试,我猜应该都是因为运气...又或者,实在很缺人?

技术方面该如何准备

结合我20多次的面试经验,总结出一个核心:基础。即便是大厂,也不会忽略问基础,反而更重视这个。基础不稳,地动山摇。基础稳如狗,大厂随便走。以下我提到的资料都会在文末给出链接,大家可自行查看。

js方向

对于js而言,我觉得基础应该是基本语法,数据类型,异步,各种常用api,this,es6+,原型和原型链,继承,作用域和作用域链,闭包...等等。建议阅读红宝书第四版并结合神三元的js灵魂之问系列按需完善。

css方向

对于css而言,我觉得基础应该是常用选择器,权重,垂直居中方案,rem和em,flex,动画...等等。对于这方面的准备,网上很多博客就能解决。如果想系统了解一下,推荐张鑫旭的《css世界》。flex的话,推荐小青蛙网站和阮一峰的博客。

源码方向

react技术栈,推荐阅读的源码是react,react-router,redux,react-redux,axios。

vue的话,推荐阅读的源码是vue,vue-router,axios,vuex。

如果涉及nodejs,那koa2,koa-router,express,也都可以安排下。

至于源码方向的推荐有三个:

  • 卡颂的react技术揭秘

  • 若川的源码系列(很多,文末直接贴作者主页了)

  • 难凉热血的vue源码分析

数据结构和算法方向

面试过程中问到算法很正常,这个时候就要注重平时的积累了。

算法方向推荐的有四个:

  • 极客时间王争的数据结构与算法之美

  • 政采云团队的博客--算法篇

  • 天天的前端算法总结

  • ssh的前端算法进阶指南

  • 修言算法小册

计算机网络方向

无论是前端还是后端,通信都是极为重要的概念,最起码应用层http和https要有一定的了解。

如果想全面了解一下,推荐谢希仁那本特别厚的《计算机网络》,看前六章就可以了。

如果觉得特别多,可以看一下神三元的http灵魂之问。

浏览器方向

这部分只推荐一个,极客时间李兵老师的浏览器专栏

其他方向

我这边因为项目中会兼顾一些运维的工作,所以对nginx常用配置和linux常用命令有一定的了解, 这部分可参考我之前写的笔记。当然这个不算必须项,大概可以算个加分项吧。

面经

接下来我会分享我面试的七家公司的面经,可作为面试参考。

58同城一面

  1. 自我介绍

  2. 诸多业务问题

  3. 项目中主要负责什么

  4. 原生js怎么实现拖放

  5. react-dnd拖放的核心API

  6. react diff 算法复杂度是多少

  7. diff造成的非预期更新如何解决

  8. 如何实现路由监听

  9. 页面适配方案:百分比,flex,vh,vw

  10. 平时对js和css基础有过了解吗

  11. 从地址栏输入地址到页面回显,都发生了什么

  12. 解释下重绘和回流

  13. 说一下js中的类和java中的类的区别

  14. 说一下js中如何实现函数重载

  15. webpack动态加载

面试感受:

58同城是我面的最早的一家,一面是电话面,大概聊了有一个小时。整个面试过程很nice,最后让面试官给我一个评价。讲真,面试官很真诚,说我的表现是超预期,但是在年限和经验上有所欠缺,hr那边可能会影响定级。我表示理解,毕竟确实年限短。

58同城二面

  1. 自我介绍

  2. 为什么刚工作不久离职了

  3. 业务中负责什么

  4. node偏运维方向的有没有了解过(docker k8s)

  5. 业务中主要用node干了什么

  6. react生命周期有了解吗

  7. 说下react-router源码你看完后印象深刻的部分

  8. 数组去重怎么实现,不用set怎么实现

  9. 实现一下es6的extends

  10. 有没有接触过移动端,小程序,h5等方向

面试感受:

二面是视频面,面试官和我聊了一下接下来的发展方向,描绘了一张美好的蓝图。听起来还不错,虽然没听懂。某些不可说的原因,58同城结束在二面,后续没有再进行。

百度一面

  1. 自我介绍

  2. js数据类型和存储方式,如何判断

  3. typeof [] 返回什么

  4. new操作符 做了什么

  5. 数组中一万个数据,访问第一个和最后一个效率会有什么差异,为什么

  6. forEach for in for of 的差异

  7. 如何改变this指向

  8. js中函数是如何调用的

  9. 说下原型和继承

  10. 浏览器缓存

  11. 说下浏览器事件循环

  12. js是单线程还是多线程,为什么这么设计

  13. css弧形永动动画实现

  14. css 1px像素适配

  15. css设置div宽高比3:4 padding-bottom:75%

  16. 说下transform 和transition

  17. 类数组怎么转换成数组

  18. new Array()接收的参数是什么

  19. get和post的区别

  20. http状态码

  21. react生命周期

  22. setState更新是同步还是异步

  23. axios源码整体架构

  24. 手写Promise.all

  25. Promise中用了什么设计模式

  26. Promise都有哪些状态

  27. 算法12345678.01 =>123,456,78.01

  28. 算法12345678.01=>12,345,678.01

  29. 从地址栏输入地址到页面回显,都发生了什么

面试感受:

女面试官,题是有点多,但感觉还好,都是偏基础。印象最深的是算法部分,面试官出了题,我直接说了思路,好像还巴拉巴拉说了一下其他的。面试官说:哎呀,我只是想让你做个题...(撒娇语气??) 好的,做题。

百度二面

  1. 自我介绍

  2. 业务中你用node都做了什么

  3. 你对node还有什么想分享的吗,觉得用起来爽的部分(gzip pipe)

  4. 业务中数据是怎么存储的,node为什么没有接入数据库

  5. node单线程容易崩溃,怎么维护服务的

  6. pm2内部机制了解吗

  7. cluster了解多少

  8. 业务线如何用端口号区分(nginx http-proxy)

  9. 业务上有什么坑嘛 (环境多)

  10. webpack常用配置

  11. webpack插件写过吗

  12. webpack常用插件

  13. 关于webpack你还有什么想分享的吗 (同步加载异步加载的实现)

  14. 浏览器地址栏输入请求地址到页面回显发生了什么

  15. 重绘和重排了解吗

  16. 重绘和重排如何做取舍

  17. 如何将css内容插入到页面上(style-loader)

  18. 如果让你实现style-loader,你打算怎么做

  19. 算法题-手写快排

  20. 算法题-查找一个字符串中出现次数最多的字符

  21. 算法复杂度层面比较一下快排和其他排序

  22. 项目是内部使用吗 (是,未开源)

  23. 有没有考虑过高并发场景,如何解决(缓存,压缩,负载均衡,集群)

  24. 现在是在职状态吗

  25. 最后离职日期是多少

  26. 手上有没有其他offer

  27. 如果今晚三面是否有时间(说有上线,推迟了)

  28. 反问一:百度App部门有没有使用node的场景

  29. 反问二:App部门是不是只有移动端场景,有没有其他的,比如pc

  30. 反问三:百度怎么做容灾的

  31. 反问四:百度App是分工明确还是也会出现身兼多职的情况

  32. 反问五:给我一个今后学习发展的建议和这次面试的简单评价

面试感受:

不得不说,和二面面试官聊的很是带劲,给我很多鼓励,完事大概是晚上十点多了,意犹未尽。当场要整三面,当时也恰好11点要上线,就改时间了,三面约到了一周后。

百度三面

三面面试官是手机百度部门的leader,电话面的,主要是问了我一下期望薪资和来百度的意愿。然后又是一波鼓励,还教我怎么谈薪资,感动到爆炸。说实话当时我已经决定同等薪资必去百度,奈何后续流程太长了,我已经接到抖音正式offer邮件那边还没反馈。

抖音一面

  1. 自我介绍

  2. 说一下业务中你负责的部分

  3. 业务中数据是怎么存储的

  4. 业务中拖拽如何控制位置的,适配怎么处理,全屏怎么控制

  5. 你用nodejs和java分别做了哪些业务

  6. 业务中的缩略图是什么,实现方案

  7. 说下jwt

  8. 说下js中数据存储方式

  9. 知道内存碎片怎么产生的吗 v8

  10. post请求有几种方式触发

  11. post的ContentType类型有哪些(application/x-www-form-urlencoded/multipart/form-data/text/plain)

  12. 知道jwt有哪些缺点吗

  13. 说一下http和https的区别

  14. https的tls了解吗

  15. 说一下锁(懵逼),举例是读锁和写锁

  16. 为什么要去看axios的源码,大体实现

  17. 业务中权限是怎么接入的,数据表怎么划分的

  18. 能说一下css盒模型吗

  19. 说下box-sizing中border-box 和content-box的区别

  20. this指向

var fullname = '1';
var obj = {fullname: '2',prop: {fullname: '3',//如果改成普通函数呢?getFullname:()=> {return this.fullname;}}
};
console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
  1. 算法题1:节点渲染


const el = require('./element.js');
const ul = el('ul', {id: 'list'}, [el('li', {class: 'item'}, ['Item 1']),el('li', {class: 'item'}, ['Item 2']),el('li', {class: 'item'}, ['Item 3'])
])
const ulRoot = ul.render();
document.body.appendChild(ulRoot);<ul id='list'><li class='item'>Item 1</li><li class='item'>Item 2</li><li class='item'>Item 3</li>
</ul>
  1. 算法题2:属性获取

{a:{b:{c:{f:"aa"}},d:{e:{g:"bb"},h:{i:"cc"}},j:{k:"dd"}}
}
// [f,g,i,c,e,h,k,b,d,j,a]

面试感受:

面了百度和58同城,有点膨胀,字节让我清醒。算法被吊打,只写了个大概和思路。感觉要凉了,最后反问环节我已经没什么想问的了。如果说有,我想问一下我还有机会吗?最后说了一下我的遗憾,表示我擅长的没有完全体现出来,命中的很多盲区。好家伙,峰回路转,面试官说我还是有其他亮点的,再给我一次机会,就到了二面,感动到冒泡泡...

抖音二面

  1. 看你简历有提到nginx配置,主要配置了什么

  2. 说下上线部署流程中常用的linux命令

  3. node的进程守护怎么做的,发现非预期故障怎么排查

  4. 项目中为什么选择用nodejs

  5. 业务中负责哪些部分

  6. 手写一个koa2的compose

  7. 手写一个Scheduler类,实现并发控制


//JS实现一个带并发限制的异步调度器Scheduler,
//保证同时运行的任务最多有两个。
//完善代码中Scheduler类,使得以下程序能正确输出:
//Scheduler内部可以写其他的方法
class Scheduler {add(promiseCreator) { ... }// ...
}const timeout = (time) => new Promise(resolve => {setTimeout(resolve, time)
})const scheduler = new Scheduler()
const addTask = (time, order) => {scheduler.add(() => timeout(time)).then(() => console.log(order))
}addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')
// output: 2 3 1 4// 一开始,1、2两个任务进入队列
// 500ms时,2完成,输出2,任务3进队
// 800ms时,3完成,输出3,任务4进队
// 1000ms时,1完成,输出1
// 1200ms时,4完成,输出4

面试感受:

二面问的不多,主要是写代码吧。Scheduler没有完整写出来,koa2的compose写出来了,其他的回答还行,完事约了三面。抖音二面时快手hr打电话告诉我二面过了,当场愣住,我不是正在二面吗?怎么就过了?

抖音三面

  1. 为什么工作不久离职

  2. 你觉得你擅长哪些技术(react+node+计算机网络)

  3. 说一下进程线程,如何通信?

  4. 两个线程可以直接通信吗

  5. 你觉得node的适用场景是什么

  6. 相比其他后台语言,为什么你更倾向node?

  7. 在业务开发上,你觉得node和java的区别是什么?

  8. node服务的性能监测有没有了解过?

  9. http中间人劫持了解吗?如何解决呢?(说了https)

  10. 为什么https可以做到避免中间人劫持?(说了加密层tls)

  11. 展开说一下tls握手(对称,非对称,对称+非对称的组合)

  12. 加密套件指的是?(举例了AES)

  13. 业务中的安全问题有没有遇到过?怎么解决的?(说了base64,cors,xss,csrf,cookie的httponly和samesite属性)

  14. 你倾向的技术领域和业务场景是怎样的?

  15. 算法1:二叉树层序遍历和s形的层序遍历

  16. 算法2:如何在从左到右升序,从上到下升序,每一行第一个元素大于上一行最后一个元素的二维数组中查找某个数字的索引?如果是一维数组呢?

  17. 算法3:二分法的实现

  18. 算法4:单链表反转

  19. 反问:抖音安全部门主要的业务范围是什么?

面试感受:

三面问的更全一点,理论和代码层面的都有,算法2没写出来,其他的应该都抗住了。后续流程很顺利,已拿offer。

猿辅导一面

猿辅导那天是招聘专场,一面到底,直通hr面。因为某些非预期情况,不再考虑这边,选了抖音。

  1. 自我介绍

  2. 业务中负责的部分

  3. 业务中数据怎么存储的

  4. 为什么坚持用node

  5. 算法1:promise并发控制

  6. 算法2:前k个元素

  7. js中遍历数组的方式

  8. react中遇到的坑,怎么解决的

  9. 说一下类组件和函数组件

  10. 选择hooks的优点

  11. 什么时候用类组件

  12. 说下http缓存,如何实现

  13. 反问一:这边有没有使用node的场景

  14. 反问二 :业务线中使用的技术栈是什么

  15. 反问三:有没有jq那种老项目

  16. 反问四:面试评价和今后发展的建议

面试感受:

和面试官聊的很开心,从技术到业务到技术选型,巴拉巴拉聊了很多。那边是用的angular11,还有vue2.x,后续打算迁移到react技术栈上。

猿辅导二面

  1. 自我介绍

  2. 诸多业务问题

  3. react diff算法如何实现的,比对复杂度是多少

  4. 如何使用react-dnd完成拖放的,说下主要API

  5. 大数据量场景前端怎么处理,让页面展示尽可能流畅

  6. 业务中看你有涉及到node的文件读写操作,有没有想过如果某个文件被锁怎么处理?

  7. 前端缩略图(截图)方案是什么

  8. 业务中的实时保存会有性能开销,又没有做什么优化?

  9. node转buffer输出字符串会比直接string输出快,你的依据是什么?

  10. 算法一:给定一串数字,求它全排列结果

  11. 算法二:实现类似百度那种联想搜索(模糊匹配)

  12. 收尾闲聊:你觉得一面难还是二面难?我说二面吧,数学不太好,全排列没屡清楚。

面试感受:

和面试官聊的依旧很开心,二面聊了很多业务。好家伙,我和面试官开始在白板上画图交流了。咱数学确实菜,全排列也没整清楚,和逻辑混一起更想不明白。面试官表示理解,然后约了三面,部门大leader。

猿辅导三面

  1. 根据简历确认了一下基本信息

  2. 为什么刚工作几个月就离职

  3. 看你大学学的挺多的,高中是不是没好好学习呀(笑,解释说高中是为了高考被动式学习,大学是为了工作主动学习)

  4. 日语N2是指?(解释了下等级,日企门槛)

  5. 看你对前端热情挺高的,为什么选择了前端呢?

  6. 然后面试官直接给我安排了研发方向,前期ng,后期react,说是在组建一个复杂架构小组,目前两人,预计4-6人。(说实话,有点慌)

  7. 做个题吧,给定学生id和分数组成的列表,写一个函数,通过id获取排名,注意分数相同并列名次的处理(写了七七八八,后边面试官说思路可以,就这样吧)

  8. 然后让我等下hr,面试官去下一场面试了(面试专场,一下午来了大概20+,每个面试官都很忙,后续基本没有反问时间)

面试感受:

亲切,看面试官第一眼就觉得很亲切。整体聊的也很顺利,过往经历和一道算法题,完事。看的出来,是想要我的。之后hr面结束,打道回府。

猿辅导hr面

  1. 之前有了解过猿辅导吗

  2. 确认了一下简历基本信息

  3. 还有其他公司在面试吗,进展如何?

  4. 说了下福利,餐补800,六险一金,不限量零食下午茶,健身房,晚下班打车企业报销,巴拉巴拉……说了好多福利

  5. 聊了下薪资,之前的,预期的。

  6. hr表示不会因为工作经验而刻意压薪资,扁平化管理,会根据每一轮面试官评价来定(给我的预期是校招生水平,实际是超预期)

  7. 你是97年的嘛?(惊讶) 感觉你表现上更成熟一些(我说和个人经历和读的书有关吧)

  8. 个人经历,比如呢?(笑,爱情算吗?)

  9. 然后和hr聊起了爱情观

  10. 所以你现在状态是?(单身)

  11. 大学读了哪些类型的书?

  12. 我问了下工作时间,早10晚7,双休不打卡

  13. hr表示offer流程会根据我这边其他公司面试进展随时同步,很热情的送我到电梯门口

面试感受:

面试体验确实不错,后期就有点遗憾了。也难怪,我的年限和期望偏差确实有点大,这边流程上多加考虑也可以理解。

快手一面

  1. 自我介绍

  2. 项目应用场景和优势

  3. 写个继承案例

  4. Object.create实现

  5. Object.create传null和{} 有啥区别吗

  6. 手写promise(写完then后面试官说可以了)

  7. 实现一个数组扁平化方法flat

  8. js为什么设计成单线程

  9. 事件循环说一下

  10. Promise里都是微任务吗

  11. 平时怎么学习的

  12. koa2中间件和redux中间件比较,原理

  13. koa2的洋葱模型和redux中间件的洋葱模型一样吗

  14. 两个compose的大概实现,reduce的妙用

  15. 对比一下express,koa2(我连同比较了egg)

  16. 为什么不要在循环、条件语句或者嵌套方法中调用Hooks

  17. new Promise返回的实例和实例then方法执行后返回的promise是一个吗

  18. 平时有浏览过哪些国外的网站吗

面试感受:

女面试官,聊了很多,感觉想早点下班。hh,我要写代码,刚写了大概,面试官说可以了,可以了,之后约了二面。

快手二面

  1. 说一下为什么要用hooks,解决了什么问题

  2. react函数组件和类组件触发更新的方式有哪些

  3. react的强制更新有了解吗

  4. react在一秒内点击按钮多次(+1),如何获取最后一次的新状态

  5. react-router权限路由写一下

  6. 实现一个带缓存的求阶乘函数

  7. 说说你对koa2中间件的理解

  8. 某些接口允许跨域,某些不允许,如何实现?能不能使用koa2中间件的方式实现一下?

  9. koa2中ctx.set的等价写法

  10. 用node如何实现一个带压缩和缓存的http-server?

面试感受:

面试官给我一种道法自然,万法皆通的感觉,某些想法秀到我了,很强。问的基本都答上了,很快约了三面。

快手三面

  1. 自我介绍(侧重说下个人优势和项目亮点)

  2. 为什么刚工作不久离职

  3. 如果有成熟稳定的A团队和从0到1的B团队,你倾向哪种

  4. 如果B团队做不好有可能会因为业绩不达标被砍掉,做的好会有高收益,A团队一直是稳定的,你倾向哪种

  5. A团队业务线偏向底层功能开发,为B团队服务。B团队在A团队产出基础上,会面对更多复杂业务,你倾向哪种

  6. 反问1:刚才提到的AB部门的业务覆盖场景是只有pc端吗?还是也有其他端?

  7. 反问2:工作模式是否为导师制?

面试感受:

无关技术,只谈选择。我选了BBB。之后约了hr面,然后又加面,其实也没问太多技术问题。流程和字节基本同步,薪资待遇持平,只是多了一个背调。我比较想早点入职,选了更快的抖音。说实话,有点舍不得负责招聘的hr小姐姐,hh,给了我很多祝福。

美团一面(部门A)

我怀疑美团有毒,二面必挂。第一次面到2面,题基本都答上了,莫名挂掉。然后又被打捞,依旧面的很顺利,二面挂掉... 好家伙,分手都没个预兆。遗憾是有,但也无能为力。美团到店,我可能到不了店了。

  1. 自我介绍

  2. 为什么刚工作不久就离职了

  3. 项目中常用的linux命令

  4. 业务中打包怎么做的

  5. 如何查询某个进程占用的端口号(linux中) netstat -tunlp|grep 80 lsof -i:80

  6. 实现一个new操作符

  7. git reset 和git rebase了解吗

  8. 实现Object.create

  9. 实现数组扁平化函数flat

  10. webpack有哪些优化方案

  11. loader和plugin有写过吗

  12. react合成事件了解吗?

  13. 这些事件处理函数最终挂载到了哪?

  14. react中如何阻止冒泡

  15. react中setState同步还是异步

  16. react15和react16更新机制的差异

  17. 为什么react16架构升级后就能中断更新,根据什么决定是否中断

  18. react源码看过哪些?

  19. react中调和的部分是在哪个包?有看过实现吗

  20. hooks为什么不能在条件或循环中使用,原理清楚吗?

  21. react为什么要引入hooks,解决了哪些问题

  22. 类组件如何实现逻辑复用?

  23. 打印题

const o1 = {text: 'o1',fn: function() { return this.text}
}const o2 = {text: 'o2',fn: function() {return o1.fn()}
}const o3 = {text: 'o3',fn: function() {var fn = o1.fnreturn fn()}
}
console.log(o1.fn())
console.log(o2.fn())
console.log(o3.fn())

面试感受:

美团的面试还是有点东西的,问的很全。linux那个和git rebase不太清楚,其他的基本都ok,然后约了二面。

美团二面(部门A)

  1. 自我介绍

  2. 诸多业务问题

  3. 你期望的业务场景或者工作环境

  4. js为什么会有回调地狱呢

  5. 为什么java没有回调地狱

  6. promise.all返回的是什么

  7. promise和async你觉得差异点是什么

  8. 算法1:rgb转16进制函数

  9. 算法2:

//实现一个retry函数
//如果fn返回成功,则打印一下,最终结果成功
//如果fn返回失败,则打印times下,最终结果失败
retry(fn,times)
retry(() => {console.log('doing')return Promise.reject(Error('done'))
}, 3)retry(() => {console.log('doing')return Promise.resolve('done')
}, 3)
  1. 打印题

var a = 20;
var test = {a: 40,init: () => {console.log(this.a);function go() {console.log(this.a);}go.prototype.a = 50;return go;}
};var p = test.init();
p();
new p()

面试感受:

题基本都答上来了,莫名挂。被打捞的时候问了一下一面面试官,他表示也很迷,说确实有二面面试记录,但是没评价??

美团一面(部门B)

  1. 自我介绍

  2. koa-compose实现

  3. react权限路由实现

  4. 前端路由实现原理(对比react,vue)

  5. 单页面应用和传统服务端渲染的差异比较

  6. 前端页面性能优化

  7. nginx 负载均衡配置

  8. node端处理大文件上传

  9. react hooks用过哪些

  10. react使用心得

  11. redux模板语法的改良(使用装饰器)

  12. 聊一下代码检查(eslint,ts)

  13. 防抖节流区分,手写

  14. 实现map,reduce

  15. 统计字符串中次数最多字母

面试感受:

和面试官聊的很带劲,好家伙,相见恨晚。面试结束不到一小时hr打电话约二面,并告知一面给了满分。

美团二面(部门B)

  1. 如何区分函数是new调用还是直接调用

  2. 解释下下面两段代码执行结果的差异

function foo() {foo();
}
function foo() {setTimeout(() => {foo();}, 0)
}
  1. requestAnimationFrame 和 requestIdleCallback了解吗

  2. 说下react的key

  3. node中加载相同模块,会重复打印吗

//a.js 
function foo() {console.log('foo'); // }
foo();
//b.js
require('./a.js');
require('./a.js');
//node b.js
  1. 如何设计这套缓存

  2. http模块起一个服务,如果想修改请求体并转发给另一个服务,怎么实现

  3. 说下react-redux干了什么事

  4. mapStateToProps的第二个参数作用

  5. 实现一个Map

  6. 说下react常用的性能优化手段

  7. linux中exec ls 和ls 差异

  8. linux 中的source了解吗

面试感受:

我和面试官都提前到了视频会议室,然后我提议可以提前开始。面试官说ok,大概是45分钟。好家伙再问一个,再问一个,再问一个...差不多一个半小时,刺激。最后莫名挂掉,原因未知...

去哪儿网一面

  1. 自我介绍

  2. 说一下项目中遇到的挑战和你认为的亮点

  3. 能说一下你用mvc模式重构node业务代码的大概方向和效果吗

  4. 说下跨域

  5. 这个项目里前后端联调的话,有问题一般怎么排查(表示基本都是自己写)

  6. 追问:为什么是都要自己写呢?(相对偏向全栈,人少)

  7. 感觉你个人比较喜欢node,是想往这个方向发展吗

  8. 对技术栈或新技术上是怎样的一个态度

  9. 项目中写的css多吗,主要是哪些?(说了less,css,styled-components)

  10. 有没有接触过移动端,小程序,App这些场景

  11. 有在面其他公司吗?进展?

  12. 为什么刚工作不久离职了

  13. 你说离职是追求技术的突破,能解释下你想要的是怎样的吗

  14. 对于公司和业务部门,你更倾向哪一边的考虑(类比了选学校和选专业)

  15. 事件循环的打印题(比较基础)

setTimeout(() => {console.log(1)
}, 0)
new Promise((resolve) => {console.log(2)for (let i = 0; i < 10000; i++) {if (i === 9999) { resolve() }}console.log(3)
}).then(() => {console.log(4)
})
console.log(5)

面试感受:

女面试官,聊的也还行,比较满意我的表现吧,很快约了二面,现场。

去哪儿网二面

  1. 自我介绍

  2. 为什么刚工作不久就离职

  3. 诸多业务问题

  4. 说下你擅长的

  5. 解释下重绘和回流

  6. 说一下你知道的浏览器渲染相关的点

  7. 你觉得有哪些优势

  8. 平时怎么学习的

  9. 说下tls握手

  10. 还有在面其他公司吗?

  11. 前端如何做性能优化

  12. 算法1:数组中出现最多的数字

  13. 算法2:斐波那契数列

  14. 闲聊:你觉得你的缺点是什么

面试感受:

感觉面试官有些漫不经心,简单聊了聊,然后我说了期望薪资,好家伙,估计又说多了...没后续。

致谢

在我看来,面试并不是一个人的战斗。站在巨人的肩膀上,可以加快你前进的速度。感谢这一路上,直接或间接给我帮助的大佬们,排名不分先后。

  • 磐冲, 曾多次参加磐冲大佬组织的直播面试,表示受益良多。

  • 张仁阳, 珠峰架构公开课诸多知识点面试命中

  • 若川, 源码系列收获颇丰

  • ssh,  react性能优化方案,多次面试命中

  • 神三元,灵魂之问系列查漏补缺

  • 卡颂,react源码系列,多次面试命中

  • 阿紫, 鼓励君+祝福小天使

  • 大月, 经历很相似的战友,抱团取暖

相关链接

  • 红宝书第四版:https://www.ituring.com.cn/book/2472

  • js灵魂之问(上):https://juejin.cn/post/6844903974378668039

  • js灵魂之问(中):https://juejin.cn/post/6844903986479251464

  • js灵魂之问(下):https://juejin.cn/post/6844904004007247880

  • css世界:https://www.cssworld.cn/

  • flex小青蛙:http://flexboxfroggy.com/

  • flex阮一峰博客:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

  • 卡颂的react技术揭秘:https://react.iamkasong.com/

  • 若川的源码系列:https://juejin.cn/user/1415826704971918/posts

  • 难凉热血的vue源码分析:https://nlrx-wjc.github.io/Learn-Vue-Source-Code/

  • 数据结构与算法之美:https://time.geekbang.org/column/intro/100017301

  • 政采云团队的博客--算法篇:https://101.zoo.team/

  • 天天的前端算法总结:https://juejin.cn/post/6900698814093459463

  • ssh的前端算法进阶指南:https://juejin.cn/post/6847009772500156429

  • 修言算法小册:https://juejin.cn/book/6844733800300150797

  • 谢希仁的计算机网络:https://item.jd.com/12219883.html

  • 神三元的http灵魂之问:https://juejin.cn/post/6844904100035821575

  • 浏览器专栏:https://time.geekbang.org/column/intro/100033601

  • nginx笔记:https://blog.csdn.net/qq_42813491/article/details/103117799?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160938095216780302981460%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fblog.%252522%25257D&request_id=160938095216780302981460&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-103117799.pc_v2_rank_blog_default&utm_term=nginx

  • linux笔记:https://blog.csdn.net/qq_42813491/article/details/88379799

推荐阅读

我在阿里招前端,我该怎么帮你?(现在还可以加模拟面试群)
如何拿下阿里巴巴 P6 的前端 Offer
如何准备阿里P6/P7前端面试--项目经历准备篇
大厂面试官常问的亮点,该如何做出?
如何从初级到专家(P4-P7)打破成长瓶颈和有效突破
若川知乎问答:2年前端经验,做的项目没什么技术含量,怎么办?
若川知乎高赞:有哪些必看的 JS库?

末尾

你好,我是若川,江湖人称菜如若川,历时一年只写了一个学习源码整体架构系列~(点击蓝字了解我)

  1. 关注若川视野,回复"pdf" 领取优质前端书籍pdf,回复"1",可加群长期交流学习

  2. 我的博客地址:https://lxchuan12.gitee.io 欢迎收藏

  3. 觉得文章不错,可以点个在看呀^_^另外欢迎留言交流~

精选前端好文,伴你不断成长

若川原创文章精选!可点击

小提醒:若川视野公众号面试、源码等文章合集在菜单栏中间【源码精选】按钮,欢迎点击阅读,也可以星标我的公众号,便于查找

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动图演示23个鲜为人知的VSCode快捷键

原文地址&#xff1a;https://dev.to/devmount/23-lesser-known-vs-code-shortcuts-as-gif-80尽管我在VS Code中经常使用许多快捷方式&#xff0c;以下快捷方式可能会派上用场&#xff0c;但我经常忘记它们的存在。我制作了一些GIF&#xff0c;以便更好地记住它们。也许这里面也…

使用C语言进行面向对象的开发--GObject入门[5]

转载请注明出处 blog.csdn.net/pingf0 或www.cnblogs.com/pingf 接上文这一部分简要介绍下类的析构&#xff0c;或者成为终结。还是多说几句&#xff0c;也算是对前文的补充1.生成一个类是由父到子&#xff0c;析构的时候自然与之相对是由子到父。2.GObject的内存管理并没有采用…

面试官问:能否模拟实现JS的bind方法(高频考点)

可以点击上方的话题JS基础系列&#xff0c;查看往期文章写于2018年11月21日&#xff0c;发布在掘金阅读量1.3w前言这是面试官问系列的第二篇&#xff0c;旨在帮助读者提升JS基础知识&#xff0c;包含new、call、apply、this、继承相关知识。面试官问系列文章如下&#xff1a;感…

连续投影算法_中航国画荣获“2020 IAV国际视听嘉年华” 大屏幕投影显示行业三大奖项!...

近日&#xff0c;“2020IAV国际视听嘉年华”在深圳湾创新生态园隆重举行&#xff0c;航空工业上电下属子公司中航国画作为2020年迪拜世博会中国馆官方合作伙伴应邀参加此次高峰论坛&#xff0c;并在展会期间凭借4K系列双色激光工程投影机、LP160UL系列超高亮度双色激光工程投影…

CMDB功能分析与实现方案

CMDB功能分析与实现方案 CMDB系统的主要功能 1.用户管理,记录测试,开发,运维人员的用户表 2.业务线管理,记录业务的详情 3.项目管理,指定此项目属于那一条业务线 4.应用管理,指定此应用的开发人员 5.主机管理,记录主机管理员,连接的网络设备,存储,云主机,物理主机等信息 6.主机…

他的前端焦虑:30岁以后的前端路怎么走? 你想过吗~

马云曾说&#xff0c;员工的离职原因很多&#xff0c;唯两点最真实&#xff1a;一是钱&#xff0c;没给到位&#xff1b;二是心&#xff0c;委屈了。当时间来到了年末&#xff0c;离职、跳槽、年终奖又成了年终热词&#xff0c;而此时辞职好似成为了一场勇敢者的游戏&#xff0…

码云 Gitee 新增仓库访问之 IP 白名单功能

码云企业版上线 IP 白名单功能&#xff0c;该功能主要用于企业禁止非指定 IP 访问代码仓库。如下图所示&#xff1a;使用方法&#xff1a;进入企业控制面板 -> 管理 -> 安全设置添加允许访问 Git 仓库的 IP 地址启用安全选项&#xff1a;只允许在信任范围内推拉代码其他关…

福利 | 抽奖送现金送书《Web前端工程师修炼之道》

很多关注了我的公众号的粉丝可能都不知道我&#xff0c;趁这次机会简单介绍下。你好&#xff0c;我是若川。江西人&#xff0c;某不那么知名的陶瓷大学毕业生&#xff0c;目前在杭州从事前端开发工作。常以若川为名混迹于江湖。更详细的可以点击关于我我历时一年才写了《学习源…

蒙特卡洛方法_基本理论-蒙特卡洛方法与定积分

全球图形学领域教育的领先者、自研引擎的倡导者、底层技术研究领域的技术公开者&#xff0c;东汉书院在致力于使得更多人群具备内核级竞争力的道路上&#xff0c;将带给小伙伴们更多的公开技术教学和视频&#xff0c;感谢一路以来有你的支持。我们正在用实际行动来帮助小伙伴们…

字节面试官:如何实现Ajax并发请求控制

偷偷告诉你&#xff0c;点此抽奖送红包还送3本比红宝书还贵的书实现一个批量请求函数 multiRequest(urls, maxNum)&#xff0c;要求如下&#xff1a; • 要求最大并发数 maxNum • 每当有一个请求返回&#xff0c;就留下一个空位&#xff0c;可以增加新的请求 • 所有请求完成后…

制造行业电子化签约及印控一体化解决方案

当生产“智造化”、营销“数字化”成为趋势&#xff0c;生产制造型企业如何实现产品生产-销售全流程提速降本&#xff1f;生产制造型企业为了在生产、营销环节降低成本、提升效率&#xff0c;经营模式上常有如下特征&#xff1a;• 原料导向&#xff0c;多点协同生产&#xff1…

一起手写Vue3核心模块源码,掌握阅读源码的正确方法

最近和一个猎头聊天&#xff0c;说到现在前端供需脱节的境况。一方面用人方招不到想要的中高级前端&#xff0c;另一方面市场上有大量初级前端薪资要不上价。特别是用 Vue 框架的&#xff0c;因为好上手&#xff0c;所以很多人将 Vue 作为入门框架&#xff0c;但学得深的人并不…

2020 前端技术发展回顾

大家好&#xff0c;我是若川&#xff0c;今天给大家分享一篇来自阿里妈妈前端快爆的好文。另外&#xff0c;偷偷告诉你&#xff0c;截止今晚9点 点此抽奖送红包还送3本比红宝书还贵的书可以点击文章末尾阅读原文直达知乎链接&#xff0c;以下是正文2020 终究是一个不平凡的一年…

第一章知识点

第一章知识点 一&#xff1a;SQL语言 1&#xff0c;结构化查询语言&#xff0c;是关系数据库的标准语言 2&#xff0c;分类&#xff1a; 2.1&#xff1a;数据操作语言&#xff1a;DML&#xff1b;包括&#xff1a;即增删查改&#xff1b;insert&#xff0c;update&#xff0c;d…

2021年,推荐这几个优质公众号碎片化学习

2021 年了&#xff0c;前端技术日新月异&#xff0c;发展迅速&#xff0c;前端公众号是不是感觉越来越多了&#xff1f;在着辞旧迎新之际&#xff0c;这里盘点几个前端开发工程师 2021 年必须关注的优质公众号&#xff0c;希望对你有所帮助。大家可以像我一样&#xff0c;利用碎…

阿里云插件新版发布,多特性助力提升开发者体验

好消息&#xff01;阿里云 Cloud Toolkit 新版本于近日正式发布&#xff0c;推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件&#xff0c;多个重大特性&#xff0c;持续提升开发者体验&#xff0c;本文将带大家快速预览该新版本。 本文只挑选下面三个重大特性进行解读&…

上一轮中奖信息公布

大家好&#xff0c;我是若川&#xff0c;抽奖活动其实挺耗时耗力的&#xff0c;尤其是留言和在看抽奖。比如我这篇文章写完就已经23:50了。特别想说的是&#xff1a;有126人点击了在看&#xff0c;但我的好友展示只有93人在看。说明还有30多人点击了在看&#xff0c;但忘记加我…

CentOS7Jenkins安装

2019独角兽企业重金招聘Python工程师标准>>> CentOS7Jenkins安装 2017年05月07日 20:20:32 申明霜 阅读数&#xff1a;13945 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/sms15732621690/article/details/713…

2020 全球 JS 现状调查报告

大家好&#xff0c;我是若川。偷偷告诉你&#xff0c;今天推文的第二条是在我的公众号回复「网盘」免费领取百度网盘会员&#xff0c;欢迎大家分享转发。给大家分享一篇好文&#xff0c;往期类似好文&#xff1a;2020 前端技术发展回顾2020年大前端技术趋势解读以下是正文&…

ie兼容响应式布局的实现总结 和 针对ie浏览器的CSS

参考链接&#xff1a;http://zhidao.baidu.com/link?urlbQioDKMnG_eQoE6dCxzd2hPtMyiB7phu6hBdOupn1Pjk1hV-ItXFZS5GDUBoH5qrfi9LXkUoSciXTiGN36G6LK 参考链接&#xff1a;http://blog.sina.com.cn/s/blog_601b97ee0101aszo.html ie浏览器hack .demo {padding:10px;padding:9…