阿里 & 腾讯春招前端实习面经

从3月19日开始面,现在也算是为我的春招之路留下一个句号了。春招没有投很多公司,只投了阿里和腾讯,不过一起也经历过十几次面试吧,希望能给各位带来一些帮助。

背景:双非大三,有一段在字节的实习经历。

下面很多都是面完才想起来的,可能有一些遗漏吧,但是可以说个大体方向。

腾讯

wxg 开平

一面

  1. 上来4道算法,感觉都是简单到中等难度吧。
  2. dom 相关,问的挺多的,感觉比较全面吧
  3. script 标签解析会阻碍页面加载吗
  4. 输入一段 url 后的相关流程,然后引出去计网相关的
  5. 富文本编辑器传入 img 怎么处理
  6. 跨域和相关解决方案
  7. xss 相关
  8. csrf 相关
  9. 项目中最大的挑战

二面(挂)

上来先做三道题,一个版本号比较,一道两数之和要求 O(n) 复杂度,一道leetcode 670: 最大交换。

  1. 在字节的经历
  2. http/https 相关
  3. http2的优点和缺点,如何解决
  4. http3是怎么解决的
  5. quic 协议原理能说下吗
  6. react 的渲染流程,diff 算法
  7. 如何实现组件 darkmode 模式

其实都答出来了,但是说的答案没有表达很清楚,后面问了下原因果然是表达上的问题,555。

PCG 腾讯视频

一面

  1. 在字节的实习经历
  2. 原型和原型链相关
  3. 实现一个 new 操作符
  4. 箭头函数和普通函数的区别
  5. ES6 新特性有哪些
  6. 变量提升和暂时性死区的关系
  7. 事件循环,我这里说了 Node端和浏览器端的不同,然后宏任务和微任务在 Node 11 后的改变,面试官好像对这个很感兴趣,叫我细说了下。
  8. 跨域相关
  9. 浏览器的预检请求,怎么判断检验成功
  10. 简单请求和复杂请求的区别
  11. 强缓存协商缓存
  12. cookie的字段有哪些,大小限制
  13. xss
  14. csrf
  15. 三次握手
  16. 一道算法题:带小数的大数相加

二面(挂)

  1. 实习经历
  2. 数据库范式
  3. 数据库分表原则
  4. 详细说一下 nat 协议
  5. 说一下你了解的排序方法,详细说一下基数排序和桶排序
  6. UDP如何实现可靠传输(还是 quic 那套)
  7. 详细说一下ARP协议,ARP病毒

数据库分表原则完全没复习。。其余还好,总共没面到 30 min,还是挂了,感觉有点莫名,害。

CSIG 腾讯云(offer)

一面

  1. 三道题,一道扁平化数组,一道实现向 url 添加 query 参数,一道实现数据 Camel 和 Pascal 命名规范的转换(需要优化代码,具体往生成二次函数那样去写)
  2. 400状态码一般是什么问题,如何排查错误
  3. session 是什么,有什么缺点
  4. cookie的字段,cookie 中 domain 的作用,有哪些场景(我答的单点登录)
  5. token 相关
  6. 跨域相关
  7. 简单请求和复杂请求的区别
  8. 事件捕获和事件冒泡,区别和各自执行的时机

二面

  1. 上来做了五道题(请叫我做题家哈哈),题还是挺简单的
    第一题判断打印顺序
    async function async1() {
    console.log('async1 start') // 2
    await async2()
    console.log('async1 end') // 6
    }
    async function async2() {
    console.log('async2') // 3
    }
    console.log('script start') // 1
    setTimeout(() => {
    console.log('setTimeout') // 8
    }, 0)
    async1()
    new Promise((resolve) => {
    console.log('promise 1') // 4
    resolve(1)
    }).then(() => {
    console.log('promise 2') // 7
    })
    console.log('script end') // 5
    第二题是根据数组创建链表
    第三题根据之前的链表查找距离末尾 k 距离的节点
    第四题是实现一个可以重复调用指定回调的函数,传入参数为回调函数,执行次数,间隔时间。
    第五题是 leetcode 154. 寻找旋转排序数组中的最小值 II
  2. 前端安全(xss,csrf,sql注入)
  3. 一个网站能获取能获取另一网站 cookie 吗
  4. 服务端劫持了 token 怎么做防御
  5. 服务端反爬虫
  6. 服务端跨域应该如何设置
  7. Node 和 JAVA 的区别,Node 是怎么控制操作系统的
  8. JS 为什么要是单线程,有什么好处
  9. 既然 JS 是单线程,那么面对网络请求的时候为什么能异步处理
  10. 进程和线程的区别
  11. 进程间通信方式
  12. 使用装饰器的好处
  13. Mixins 和 装饰器的不同,Mixins 的缺点
  14. Aop 编程的好处
  15. fiber 了解吗,具体说下
  16. react 内部对渲染做了哪些优化,相对于以前和现在
  17. react现在有哪些阶段
  18. 如果在 diff 的时候又修改的值,react 会怎么做

三面

  1. 如何学习前端的
  2. js 闭包的用途
  3. 前端产生随机数,Math.random 一个 5-10
  4. pv和uv是什么
  5. serverless和传统后台的区别,好处是什么
  6. Fass 架构
  7. 前端监控相关
  8. 前端异常捕获上报
  9. 如何实现埋点上传
  10. 埋点使用什么请求,为什么
  11. 前端如何做防盗链
  12. 反问

四面

  1. css 中的颜色单位
  2. 16进制颜色对应多少字节,如果 32 位 的呢
  3. 负载均衡说一下
  4. 如果要实现负载均衡,需要注意什么
  5. 如果 Node 要在后端更新文件,如何安全更新
  6. 进程守护需要注意什么
  7. pm2 原理
  8. 三握四挥
  9. 挥手后 tcp 连接能复用吗,说下原因
  10. 能马上复用吗,有什么注意点
  11. 应该算是算法吧,这里简单概括一下,输入 n ,每次减一或减二,有几种方案
  12. typescript 新版本有哪些特性
  13. 写一个工具函数,获取某个函数的第二个参数类型:
type Tool<T> = T extends (...args: [any, infer U, ...any[]]) => any ? U : never

export function fun(a: string, b: number) {}

type B = Tool<typeof fun>
  1. 反问

hr面

  1. 学校学了什么
  2. 为什么离开字节
  3. 字节经历
  4. 在字节学到了什么,最大挑战
  5. 最大缺点
  6. 考研吗
  7. 还有其他的offer吗
  8. 阿里和腾讯你选择哪个

阿里

达摩院云小蜜

总的来说考的都挺基础的,一二面都是考基础,算法貌似没怎么考过,三四面都是个人经历拓展出去的

一面

  1. 上来先做三道题笔试,一道 flex 布局相关,一道 url 解析,一道 version 版本解析,很基础
  2. CSS 优先级
  3. 跨域相关
  4. jsonp 实现,有什么缺陷
  5. 三种 css 引入方式的优先级
  6. 知道事件代理吗,什么时候要用到?(说了下概念,哪些事件不推荐做事件代理,哪些事件无法做事件代理,e.currentTarget 和 e.target 区别啥的)
  7. 如何让一个div变为可聚焦(加 tabIndex 属性)
  8. 网络安全(sql注入,xss,csrf)
  9. 如何预防 xss,要渲染富文本 react 的 xss 问题怎么办(解析 url,判断白名单,或者手写编译器,类似 babel 运行时解析,再用 React.createElement 创建元素)
  10. react diff
  11. key 的作用(不用 key 也能渲染,只是每次都需要比对 fiber 节点,有 key 就走 key )
  12. 浏览器缓存
  13. https流程
  14. 最近关注的技术(webpack5,vite)
  15. webpack5 的新特性
  16. vite 为什么这么快(大致说了使用 esbuild 开发,然后服务端对浏览器的网络请求做了映射,在服务端动态解析路径和模块之类的)
  17. 反问

二面

  1. 介绍自己
  2. 在字节的经历,学到了什么
  3. 做了哪些 code review
  4. 如果有很多if else,怎么优化
  5. JSON.stringify 的深度用法,如何美化输入(顺便拓展了一下前端做文本点击复制时如果复制 JSON.stringify 转换的文本不能使用 Input 而应该是 textarea)
  6. 对象删除元素应该怎么做(说了下 delete 和 Reflect,具体的区别)
  7. 什么是函数式编程,对函数式的理解
  8. 纯函数的概念,好处和用途
  9. 如何删除数组指定索引元素,过滤等(比较基础,拓展了一下 immutable 与 mutable 之类的)
  10. Promise相关实例和静态方法的概念,如何在 Promise.all 失败的时候判断是哪个失败的
  11. 拿到对象的 key 有哪些方法,使用 for...in 和 Object.keys 有什么不同
  12. vue 和 React 的区别
  13. React 生命周期
  14. useEffect 主要的用途,在项目中的使用场景
  15. react hooks 性能优化
  16. react 的数据流方案(简易数据流方案 useContext + createContext + useImmer,状态管理库:rematch、recoil 这些)
  17. 不同的数据应该怎么存储(全局共享放在Context,组件内部放 State)
  18. 前端存储(主要说了 Cookie、IndexedDB、LocalStorage、SessionStorage 这些)
  19. Cookie 和 LocalStorage 的区别
  20. Node 如何分层合理一些(后端那套吧)
  21. 什么是 IOC 机制,如何在 Node 里面使用(按照 nest.js 的思路答的,MVC + IOC + 元编程)
  22. 前端性能优化(做个思路梳理,网络 -> html -> css -> js -> 打包优化)
  23. 反问

三面

大部分都是个人经历强相关了,主要是在实习和学校的一些经历,然后说了下目前的开源项目和自己的项目以及规划啥的,就不展开说了。

四面

  1. 为什么会选择前端
  2. 介绍字节实习
  3. 如何设计一个项目的国际化功能
  4. 你认为 node.js,vue,react 各种出现的原因和各自优缺点是啥
  5. 实习遇到的最大的困难
  6. devops 流程是怎么样的,如何制作一个原子服务
  7. 最大的缺点

hr面(挂)

具体分为三类吧,没问多的,叫我介绍了一下实习,学校和打比赛的相关事情,然后挂了555,感觉学历那是个短板吧,可能横向比较了。

达摩院视觉实验室(已 oc)

上一个部门被挂后然后十分钟被捞起来了,貌似因为前面的技术面的比较好,接着上面的流程继续面,只加了一个技术和一个hr面。

一面

  1. 字节经历详细说
  2. 你怎么看待跨端框架的
  3. 如何实现国际化
  4. 如何实现 darkmode
  5. 离线化的具体原理
  6. 网络 5层 osi 7层
  7. http之上的协议有哪些
  8. 平时会在哪里学习技术,看哪些资料
  9. 最近关注的技术,细说一个你比较了解的

hr面

  1. 自我介绍
  2. 从大一到大三的前端经历,学习感悟
  3. 为什么不考研
  4. 还有其他 offer 吗

做个总结吧,其实面试题大都大同小异,都是考察计网、操作系统这些和前端相关的一些知识,可以发现有很多面试题实际都出现过很多次,感觉可以重点针对这部分进行复习。实际上我在回答相同问题的时候都会从上一次问题中吸取经验,然后结合面试官的一些意见进行优化。面试失败不要紧,面试本来就是一个成长的过程,保持心态,最后都会有不错的收获的。
最后,春招就要结束了,祝大家都能收获自己满意的 offer ~~。

#实习##阿里巴巴##腾讯##前端工程师#
全部评论
楼主是校招还是实习啊
点赞 回复
分享
发布于 2021-04-24 00:59
无脑去达摩院
点赞 回复
分享
发布于 2021-04-24 10:28
秋招专场
校招火热招聘中
官网直投
不过达摩院去了转正不了,阿里云卡学历,镀金就好了
点赞 回复
分享
发布于 2021-04-24 10:29
腾讯云居然四面技术面吗,楼主厉害啊!
点赞 回复
分享
发布于 2021-04-24 11:55
大佬咋学的啊好厉害
点赞 回复
分享
发布于 2021-07-01 01:17
太变态了lz
点赞 回复
分享
发布于 2022-01-06 00:17
这个面的也太难了吧😂😂
点赞 回复
分享
发布于 2022-02-17 08:21

相关推荐

22 138 评论
分享
牛客网
牛客企业服务