金三银四的腾讯、阿里、​字节等大厂前端社招面经

大家好,我是若川。最近金三银四,今天分享一篇腾讯、阿里、字节等大厂的前端社招面试经验的好文,相信看完会有所收获。也欢迎点击下方卡片关注或者星标我的公众号若川视野

作者面了将近一个月,目前还没挂过,但由于各种因素,又都拒了...这也许就是大佬吧。以下是正文~


目前工作快四年,年后投了一波简历,这里整理了一下新鲜出炉的前端面经,需要的可以自取。

腾讯

一面

  1. 写一个 LRU 缓存函数

  2. 写个防抖和节流函数

  3. 你们服务是怎么部署的?Node Agent 做了什么工作?

  4. Grpc 的优缺点?

  5. http2 的相关特性?

  6. viewport 和移动端布局方案

  7. 实现一个 compose 函数

  8. 开发中有遇到过比较难定位的问题吗?Node 内存泄露有遇到过吗?

二面

  1. react ssr 是在什么场景下做的?

  2. react ssr 双端怎么做构建的?区别在哪里?

  3. 有没有做过同构组件?服务端和客户端怎么同步状态的?

  4. render 和 renderToString 的底层实现上的区别?

  5. 客户端怎么处理 JS 事件失效的问题?客户端不重新加载 JS 的情况下怎么实现?

  6. 做服务端渲染的时候有没有遇到过比较难的点?

  7. react ssr 和 ejs 性能的差异?

  8. 服务回滚是怎么做的?上线流程是怎样的?k8s 回滚、拉取以前的镜像

  9. webpack plugin 的原理是什么?

  10. plugin 中有异步请求会阻塞后面的 plugin 吗?

  11. 做过哪些 webpack 的性能优化?

  12. hard-source-webpack-plugin 是怎么做缓存的?修改文件后会怎么样?

  13. parallel 的原理是什么?多个子进程怎么通信?

  14. 你们 webpack 是怎么做拆包的?

  15. 服务端监控是怎么做的?服务有上报过什么指标?

  16. Node 服务怎么去定位 CPU 占用暴涨的情况?怎么去定位内存泄露?

  17. 编写 grpc 服务和 http 服务的区别?

  18. 做过哪些 react 相关的优化?函数组件怎么实现 shouldComponentUpdate?

  19. 如果有一个非常大的 react 页面,我想优先渲染某一部分,这该怎么做?

  20. react 函数组件和 class 组件里面 state 的区别?

  21. react useEffect 对应 class 组件的哪些生命周期?

  22. 前端的监控是怎么做的?除了 sentry 还做了其他异常处理吗?

三面

  1. 讲一下你做的比较复杂的项目?以及你在项目中担当了什么角色?

  2. 你是怎么看待现在各种造轮子的?

  3. 有一个一亿长度的字符串,怎么存储设计可以让它更好去查询、修改?

  4. 怎么优化 H5 让它可以在 300ms 之内打开?

  5. 你们 WebView 加载一般耗时多久?

  6. 你们为什么从 Python 重构到 Node?好处是什么?

  7. 你是怎么看待做后台管理系统的?很多人觉得它没有难点,你觉得呢?(问这个问题是因为我现在在做后台管理系统)

总监面(有点儿记不清了)

  1. 新加坡和深圳内网是怎么连通的?

  2. 未来的职业规划是什么样的?

  3. 对当前新的技术有了解吗?

  4. 对客户端知识有了解吗?

  5. 为什么要离职?

拒了,岗位不是很喜欢

蚂蚁

一面

  1. React setState 怎么获取到更新后的值?异步函数中为什么 setState 会立即更新?

  2. 做过离线包吗?H5 离线包的原理?客户端根据什么拦截静态资源请求?

  3. JS Bridge 的原理?你们这套方案的s优缺点?

  4. 怎么判断 webview 是否加载完成?

  5. 怎么实现 App 头部和页面的背景渐变?

  6. PC 端做过比较有意义的项目?

  7. 微前端子应用之间怎么通信?有没有了解过业界的一些方案?

二面

  1. 你们部署的 Jenkins 是怎么做的?

  2. JS Bridge 原理?有没有安全漏洞?

  3. 有没有做过和安全相关的?waf 主要做了什么?

  4. 有没有做过埋点和性能上报相关?

  5. 如果你们用一个第三方的上报库,但页面加载这个 JS 失败了,还想上报该怎么办?

  6. 实现两个大数相加

  7. 实现 DOM 字符串转虚拟 DOM 对象(不能用 DOM 相关的 api)

  8. 有木有做过你觉得比较困难的项目?

三面

  1. 管理系统都做了哪些业务?有没有做一些提高开发效率的东西?

  2. 常用的组件是哪个?解决了什么问题?

  3. 平时 Node 都用来做什么?怎么实现的?

  4. SSR 的实现原理是什么?

  5. 项目中遇到的技术难点有哪些?

  6. 你觉得你们比 lazada 做得更好是哪些原因?

四面(略)

五面(略)

拼多多

一面

  1. 有没有做过比较复杂的页面?携程的 React-imvc 做了什么?

  2. 使用 Redux 的好处,以及和 Mobx 的区别

  3. 对 React 最新特性有了解吗?class 组件和函数组件的区别?

  4. useState 为什么不能放到条件语句里面?

  5. 实现一个 Promise.all

  6. React SSR 是怎么实现的?

  7. 有用过代码规范相关的吗?Eslint 和 Prettier 冲突怎么解决?

  8. 实现一个数组转树形结构的函数

二面

  1. 说几个你觉得足够复杂的项目?

  2. 你是怎么去做 React SSR 的?

  3. 有没有做过性能优化相关的?

  4. 实现一个深拷贝

  5. 实现一个二叉搜索树转链表的方法

拒了,不想去卖命

商汤

一面

  1. 在工作中,主要是做什么内容?

  2. 有用过 lerna 吗?多个项目之间共用的东西怎么共享?

  3. 讲一讲微前端是怎么做的?怎么独立部署?子应用通信怎么做?

  4. webpack 构建流程是怎样的?

  5. webpack loader 和 plugin 的原理和区别?

  6. webpack 热更新原理?

  7. webpack 怎么做分包?

  8. 做过 webpack 性能优化吗?有用过 rollup 吗?

  9. react-imvc 是什么?它做了什么?

  10. react 和 react-dom 的区别是什么?

  11. redux 和 mobx 的区别和优劣?用过 redux-saga 吗?

  12. react diff 的复杂度,以及 react diff 的原理

  13. react class 组件和 hooks 的区别?

  14. 什么是 TS 泛型?

  15. 从输入 url 到页面展示经过了哪些步骤?

  16. 讲一下重绘和回流

  17. 知道 BFC 吗?使用场景有哪些?

  18. 怎么判断是否为数组?

  19. 页面卡顿怎么去定位?

  20. 数组有10万个数据,取第一个和取第10万个的耗时多久?

  21. 有用过 canvas 相关的吗?

  22. JS 垃圾回收机制?怎么定位 Node 内存泄露问题?

  23. 你是怎么理解前端的?

  24. 工作中遇到过最难的问题?有没有什么让你自豪的项目?

  25. 周末你都在做什么?学习前端的途径是什么?

其他公司面的差不多了,这个后续面试就都拒了

字节

一面

  1. tcp 和 udp 的区别和使用场景?

  2. quic 基于 udp 怎么保证可靠性?

  3. 讲一下同源策略和跨域方案?CORS 的几个头部是什么?

  4. 讲一下 react fiber?

  5. vue 双向绑定原理?

  6. redux 和 mobx 的区别和使用场景?

  7. typeof null?null instanceof Object?

  8. typeof 可以判断哪些类型?instanceof 做了什么?

  9. 实现一个 bind 函数

  10. 求数组里面最大连续项的和

  11. event loop

二面

  1. 怎么优化 h5 的加载速度?

  2. 离线包怎么更新?怎么知道需要打开哪个离线包?

  3. js bridge 通信原理?

  4. 怎么实现 h5 页面秒开?

  5. 明明不是同一个语言,为什么 js 和 native 可以通信?

  6. 怎么实现 js bridge 跨多个 app 共用?

  7. grpc 相比 http 的优势?

  8. rpc 的调用流程?前端怎么调用 grpc 的?

  9. 为什么要用 grpc?

  10. 服务发现为什么用 ip,而不用域名?

  11. 怎么做 DNS 预解析?

  12. 怎么实现移动端的布局?

  13. iOS 下软键盘输入框遮挡遇到过问题么?怎么解决顶不起来的问题?

  14. 实现两个大数相加

  15. 求一个数组最大子项的和,要求这些子项在数组中的位置不是连续的

  16. 常用的 react hooks 方法

  17. useState 怎么做缓存的?

  18. react fiber 是什么?

  19. 怎么解决 useState 闭包的问题?

  20. useReducer 比 redux 好在哪里?

三面

  1. 做过哪些公共组件?DatePicker 怎么实现的?难点在哪里?

  2. 组件封装有哪些原则?

  3. 组件数据和 UI 怎么分离?

  4. 有没有做过一些提高工作效率的东西?

  5. 有没有了解过拖拽?觉得它有哪些难点?

  6. 有没有做过优化相关的?webpack 做了哪些优化?

  7. cache-loader 和 hard-source-webpack-plugin 的区别是什么?

  8. 最近遇到的比较难的项目是什么?你们服务是怎么部署的?

  9. Puppeteer 可以用来做什么?

总结

面试挺累人的,每天下班后赶回家面试,有时候干脆找个会议室偷偷摸摸面试。面了将近一个月,目前还没挂过,但由于各种因素,又都拒了。。。现在又要开始新一轮的面试了,祝自己好运吧。


最近组建了一个江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你进群。


常驻推荐阅读

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

如何准备20K+的大厂前端面试

常驻末尾

你好,我是若川,江西人~(点击蓝字了解我)历时一年只写了一个学习源码整体架构系列 有哪些必看的JS库:jQuery、underscore、lodash、sentry、vuex、axios、koa、redux

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

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

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

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

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

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

相关文章

JS中创建函数的几种方式

使用 "函数声明" 创建函数 语法:* function 函数名([形参1,形参2...形参N]){* 语句...* } */function fun2(){console.log("这是我的第二个函数~~~");alert("哈哈哈哈哈");document.write("~~~~…

ssm提交post_我用spring mvc做,用post方式提交,后台获取不到参数值,用get方式就可以,什么问题...

展开全部因为form表单e68a843231313335323631343130323136353331333365646330的enctype编码方式不同导致的;enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就…

网页设计简约_简约网页设计的主要功能

网页设计简约重点 (Top highlight)Minimalism is synonymous with simplicity. Not quite. As the name suggests, minimalism is definitely not about opulent design. But the assumption that minimalism is design-less and plain is also wrong. Minimalism is simple ye…

MySQL_数据库数据类型(data type)介绍

转载链接:http://www.360sdn.com/mysql/2013/0511/78.html MySQL_数据库数据类型(data type)介绍 mysql数据库的数据类型(data type)分以下几种:数值类型,字符串类型 一、数值类型 MySQL 的数值类型可以大致划分为两个类别,一个是整数,另一…

Expo 2010 Japan Pavilion

^_^转载于:https://www.cnblogs.com/mmmhhhlll/archive/2010/04/16/1713680.html

深度对比学习Vue和React两大框架

作为国内应用最广的两个框架,Vue 和 React 是前端必须掌握的内容,也是面试的重点。但大多数读者都只擅长其中一个框架,当面试涉及到另一个框架的内容时,就答不好了。比如虚拟dom,两个框架中都有应用,面试官…

PHP Token(令牌)设计

转载链接:http://www.jb51.net/article/13756.htm PHP Token(令牌)设计 设计目标: 避免重复提交数据. 检查来路,是否是外部提交 匹配要执行的动作(如果有多个逻辑在同一个页面实现,比如新增,删除,修改放到一个PHP文件里操作) 这里所说的token是在页面显示的时候,写到…

java rwd_面向任务的设计-不仅限于Mobile First和RWD

java rwdWe already know that majority of solutions should start with a design for smartphones, we know that all websites should be responsive. Now, it’s time to think about holistic solutions with specific tasks adapted to all kind of devices.我们已经知道…

python中关键字 表示空类型_python中什么表示空类型

python中什么表示空类型?python中None表示空类型。表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。可以将None赋值给任何变量,也…

HOJ 1015 Nearly prime numbers

代码 //Nearly prime number is an integer positive number for which it is possible //to find such primes P1 and P2 that given number is equal to P1*P2.#include <stdio.h>#include <stdlib.h>#include <math.h>//decide n whither is a nearly pri…

「前端工程化」该怎么理解?

大家好&#xff0c;我是若川。今天分享一篇「前端工程化」的好文。非广告&#xff0c;请放心阅读。可点击下方卡片关注我&#xff0c;或者查看系列文章。今天发文比较晚&#xff0c;以往都是定时早上7:30发文&#xff0c;也不知道是不是有点早。一.什么是前端工程&#xff1f;一…

axure文本框值相加_Axure教程:计数文本域实现

原标题&#xff1a;Axure教程&#xff1a;计数文本域实现制定UI规范时&#xff0c;遇到实现“限制字数的文本域”的交互问题&#xff0c;即当用户输入的字数长度超过限制要求&#xff0c;如何只保留规定长度的文本&#xff1f;效果如下&#xff1a;我们知道【Number】类型的文本…

figma下载_Figma和ProtoPie中的原型制作,比较

figma下载第1部分 (Part 1) Prototyping has never had such a high profile with a whole host of tools that now give you varying ability to realize your designs beyond their static UI and into a working usable thing. It’s fair to say that prototyping within t…

拗口翻译

I find many times people use temporary tables because they learned in other databases that joining too many tables in a single query is a ʹbad thingʹ. This is a practice that must be unlearned for Oracle development. Rather then trying to out‐smart the …

javascript 手机手势动作touch触屏原理分析

转载链接&#xff1a;http://www.lvtao.net/web/220.html $(function(){document.getElementById("moveId").addEventListener(touchstart, touchStart);document.getElementById("moveId").addEventListener(touchmove, touchMove);document.getElementBy…

并发工具类(四)线程间的交换数据 Exchanger

前言JDK中为了处理线程之间的同步问题&#xff0c;除了提供锁机制之外&#xff0c;还提供了几个非常有用的并发工具类&#xff1a;CountDownLatch、CyclicBarrier、Semphore、Exchanger、Phaser&#xff1b;  CountDownLatch、CyclicBarrier、Semphore、Phaser 这四个工具类提…

「前端组件化」该怎么理解?

大家好&#xff0c;我是若川。今天分享一篇关于「前端组件化」的好文。欢迎点击下方卡片关注我。以下是正文~这里我们一起来学习前端组件化的知识&#xff0c;而组件化在前端架构里面是最重要的一个部分。讲到前端架构&#xff0c;其实前端架构中最热门的就有两个话题&#xff…

大屏设计的视觉统一_视觉设计中的统一

大屏设计的视觉统一视觉设计的统一性是什么&#xff1f; (What is unity in visual design?) The concept of unity in visual design means a group of elements working together to create a greater whole. It means, as the clich goes: A whole that is greater than th…

l2范数求导_机器学习中的范数规则化之(一)L0、L1与L2范数

source: https://blog.csdn.net/zouxy09/article/details/24971995zouxy09qq.comhttp://blog.csdn.net/zouxy09今天我们聊聊机器学习中出现的非常频繁的问题&#xff1a;过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。最后聊下规则化项参数的选择问题。…

9.struts1.x中tiles框架的使用

在页面直接使用titles标签先引入标签&#xff1a;<%taglib uri"http://struts.apache.org/tags-tiles" prefix"tiles" %> 将模板页面要代替的内容用标签占位&#xff1a;<tiles:insert attribute"content"></tiles:insert> 在…