Skip to main content

秋招面经1

2021-09-28|

1. Vivo#

  Vivo 是我最早面的一个,貌似也是最早开提前批的厂,Vivo 提前批怎么说...简历过了感觉就是送 offer,一个很水的技术面 + HR 面,然后就发带薪 Offer 了... 建议都可以投一波,先拿个 offer 再说。

一面#

一面 18 min 左右,记错了面试时间很尴尬,被打电话提醒面试....

先是自我介绍,然后随便问了几个问题...

在面试十分钟左右的时候面试官就说什么问题要问了....不过后面为了面试时间还是再问了几个问题?...

下面的问题不是按顺序提问的,全凭印象记录

  1. 项目介绍

  2. 项目中的请求交互问题,ajax 和 fetch 有什么不同

  3. css 可以被继承的属性

  4. js 闭包

  5. 403 状态码什么意思,发生的场景

  6. 语句和表达式是什么

  7. 跨域问题

  8. 箭头函数和普通函数的区别

  9. 软件工程专业的话你有学过哪些知识

  10. 项目中有使用 threejs ,问了 threejs 的运行原理

  11. 项目中有没有遇到什么性能问题

  12. vivo 那边是使用 vue 的,我没接触过,之前学习的是 react ,问我有什么看法

  13. 前端学习多久了

  14. 为什么会选择前端

2. 京东#

一面#

  京东的面试体验还不错,面试过程比较轻松,更像是聊天,在交流的过程中穿插一些问题,一些不懂的点面试官也会解释。最后反问阶段面试官也回复得很详细。

  不过还是挂了...面完说好等后面的电话,然后当天晚上再看的时候状态就是转推荐了...

  1. 为什么选择前端,说一下对前端的理解
  2. JS 基本数据类型
  3. 堆栈、引用类型
  4. 堆和栈的特性,那个效率高,为什么
  5. 什么情况下会造成栈溢出
  6. 静态链表和动态链表...不清楚
  7. HTTP 和 HTTPS,HTTPS不能防范哪些前端安全问题
  8. TCP 和 UDP
  9. 三次握手,为什么两次不行
  10. TCP 如何保证可靠
  11. 线程和进程,线程间的通信方式
  12. 红黑树和xxxx树有使用过吗?...没有,二叉树呢....
  13. TCP 拥塞控制
  14. 登陆验证,COOKIE 和 SESSION,SESSION会有什么问题,COOKIE大小
  15. GET 和 POST 的区别,用途,GET上传数据要注意的问题
  16. 从浏览器输入URL到页面展示过程
  17. 其他忘了

3.滴滴#

  滴滴这个是在牛客的 SP 专场里投的,官网上貌似没有相关信息,所以到时候可以关注一波。

  三轮面试是连着的,面完一场后如果过了的 HR 会通知你等一会儿进行下一轮面试,没有通知的话就是挂了...这边的面试是不分部门一起面的。

  后面在八月多的时候,有人被加面(关于加面有几种说法, 一种是处于被挂边缘,一种是定职级,还有一种是因为你最后归属部门的 leader 想再面一下你),也有人是 HR 面,我是属于最后一类,没有加面也没有 HR 面然后发意向书的.

一面#

  1. 如何学习前端的
  2. JS 继承,组合继承是什么,它和原型继承相比解决了什么问题,ES6 的 super 中做了什么操作
  3. ES6 新特性
  4. 数组去重
  5. 计算数组的最大深度,写了两种:深搜 + 广搜
  6. 在不知道宽高的情况下的 div 水平居中布局方法
  7. css 中的 left、top 这些和 transform 属性有什么区别
  8. 有哪些方式能够不触发重排
  9. 任务队列,有哪些微任务
  10. hook 的出现是为了解决了什么问题
  11. 一个父组件中有十个函数组件或十个类组件,它们有什么区别(执行次数
  12. react 状态管理工具
  13. fiber 原理,为什么暂停后能够继续工作
  14. redux connect 方法原理
  15. redux 中 action 为什么要是同步的
  16. webpack 原理
  17. tree shaking 原理
  18. webpack 执行过程中是怎么进行模块分析的
  19. webpack 优化方法
  20. 页面渲染优化方法

二面#

  1. react 中状态传递方式,有使用过其他什么状态管理工具吗

  2. react 事件、事件捕获冒泡、什么事件会被先触发

  3. 一个场景题:有两个页面,这两个页面中有很多共同的地方,如一些数据展示、图表等等,那么要怎么设计实现呢。

    考查组件复用,回答了 HOC,然后问十分钟能不能实现一下...回答 HOC 没怎么实践过,然后就换下一题了。

  4. react 中的 key 有什么作用,回答用于提升 diff 的效率,然后问还有其他什么作用吗?

  5. 问 webpack ,是直接使用 create-react-app 这样的脚手架配置还是自己有进行一些额外配置。

  6. 出了几个题,主要是变量提升和作用域的。

  7. 然后问 this,让手写一个 call、apply

  8. 然后一个简单的算法题,给两个数组,数组中什么都有,让找出两个相加为 100 的元素,要求效率尽可能高,问还能比 O(n) 更快吗?

  9. setState 是同步的还是异步的

  10. 其他忘了

三面#

  1. 项目介绍
  2. 写 shader 吗,有看过threejs源码吗
  3. 在项目中有遇到跨域问题吗,为什么会有跨域限制
  4. 缓存流程
  5. 浏览器缓存(cookie、webstorage、indexDB..)
  6. 事件循环机制
  7. 双等号和三等号
  8. css 实现 0.5px 的线
  9. transform、translate、transition 介绍,平时有用哪些
  10. 深拷贝、浅拷贝,结合你的项目说一下
  11. 闭包,解决了什么问题,带来了什么问题
  12. 设计一个轮播图,说一下思路,轮播图移动要怎么实现,如果想要轮播图开始快,后面慢怎么办
  13. 五分钟,写一个递归的二分查找,写完后问若查找的数字有多个怎么办,要怎么修改
  14. 你相比于其他人有什么优势吗
  15. 读研方向怎么定的
  16. 对前端的哪方面感兴趣
  17. 目前在学些什么
  18. ts 了解吗
  19. 除了 JS 还有学些过哪些语言,平时还会用什么语言
  20. 如果让你重新写你的项目,你会做哪些改进
  21. 其他忘了...

4.百度#

一面#

  一面是电话面,通话质量不太好,因此面试体验差了点。

  1. MVVM
  2. React 是什么模式
  3. 前端优化方法
  4. tree shaking 原理
  5. css 优化
  6. BFC
  7. 事件循环
  8. 闭包
  9. 垃圾回收
  10. 浏览器缓存
  11. http介绍
  12. tcp介绍
  13. http 和 tcp 的关系
  14. http 方法
  15. 上传数据用什么方法
  16. 什么情况使用 redux
  17. hooks 原理
  18. useEffect 和 useLayoutEffect
  19. 父子组件交互方法
  20. xhr 和 fetch
  21. 前端开发遇到过的困难

二三面#

  二三面是去现场面试的,本着面试 + 参观的想法去,不过面完感觉亏大了,首先上海这边的百度研发中心不大,也没参观啥,就看看大门了....然后面试是在一个公共场合,旁边有很多人在讨论问题,面试环境不太友好...

  最坑的是三面面完问了一下面试官这个岗位有几个HC,面试官居然还回答我了(1个)!!!

  问面试结果什么时候出来,面试官说很快,还需要和其他候选人比较一下...

  我从学校来回三小时没了,面完回来还赶上地铁晚高峰,今天就当做是百度大门一日游了🙃

  不过有一说一,尽管环境比较差,但是现场面试比线上面试体验不要好太多...现场面试和面试官交流起来完全不费劲,有什么想法也可以很及时的和面试官交流反馈,而且视频面试的时候还是会有点小紧张,但现场面试基本不会,比较放松

  二面首先简单问了点前端基础,然后出了一道异步任务输出题(promise setTimeout)

  然后是两个笔试题,第一个是写一个有任务数量限制的并发控制器,第二个是一个根据区域来分配节点,如 [{start: 8, end: 80}, {start: 15, end: 40}, {start: 30, end: 50}, {start: 81, end: 88}],然后根据区间来重新分配每个节点,每个节点有一个 children 属性用来保存被包裹的所有子节点。

  两题都写了一些,但是都没做出来,最后只能和面试官交流了一下思路。(感觉基本没了)

  三面更偏向于聊天,问了项目,问了设计模式、如何实现 mdx 解析器(mdx ,可以看做是 markdown 语法的一种拓展)、如何学习前端、未来的发展目标、为什么选择前端,前端领域的偏好、树的遍历、react fiber,还提到了 ts 和 web worker。

  最后还是得吐槽一句,百度上海 HC 真是太少了啊😫

日后谈

  百度一直拖着养鱼,每天望眼欲穿去官网上看状态,然而还是没有变化。就这样拖了快一个月居然收到了百度的人才测评,然后做完过两天就接到了 HR 电话,接着就是意向书。太惊喜了,本来认为基本是挂了,没想到来了个反转(承认存在侥幸心理)~ 还是觉得是因为去现场面试比较诚恳加了分~

5. 字节#

一面#

  1. 首屏优化方法

  2. https 握手

  3. 面向对象三要素:继承、封装和多态

  4. 泛型

  5. 实现一个div半红半蓝,考察盒子模型的

  6. 下面组件会渲染几次:

    const FC = () => {    const [loading, setLoading] = useState();     useEffect(()=>{            setTimeout(()=>{        setLoading(false);        setLoading(true);        },0)    },[]);    console.log(1);    return null;} 
  7. 写一个函数 Foo,要求:

    var a = new Foo() // => {id: 1}var b = new Foo() // => {id: 2}
  8. 实现一个 Cash 类,期望执行下面代码:

    const cash1 = new Cash(105);const cash2 = new Cash(66);
    const cash3 = cash1.add(cash2);const cash4 = Cash.add(cash1, cash2);const cash5 = new Cash(cash1 + cash2);
    console.log(`${cash3}`, `${cash4}`, `${cash5}`);
    // 希望输出结果为:// 1元7角1分,1元7角1分 ,1元7角1分
  9. 判断链表是否有环

    function ListNode(val, next = null) {    this.val = val    this.next = null}const node1 = new ListNode(1)const node2 = new ListNode(2)const node3 = new ListNode(3)const node4 = new ListNode(4)node1.next = node2node2.next = node3node3.next = node4node4.next = node2console.log(isListContainsLoop(node1))
    function isListContainsLoop(root) {    // your code.}

二面#

  一二面是连着面的(中间间隔了十分钟左右)

  1. flex 布局

  2. 盒模型

  3. url 输入过程

  4. React 生命周期

  5. let const var

  6. 事件循环

  7. useEffect 和 useEffectLayout 的区别

  8. 浏览器缓存

  9. 状态码

  10. 怎么学习前端的

  11. 有学习其他什么前端知识吗,平常做什么

  12. 看代码说答案

    'use strict';var b = 2;if (true) {    let a = 2;    var b = 3;    var c = 4;    const d = 5;}
    console.log(a);console.log(b); console.log(c);console.log(d);var d = 6;
  13. 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案

    全排列,力扣上有

    示例 1
    输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2
    输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3
    输入:nums = [1]输出:[[1]]
  14. 实现一个简单的 EventEmitter 类,once, on, off, emit方法

    once 表示该类型的事件只触发一次就删除

    on 表示挂载一个类型的事件

    off 表示卸载一个类型的事件

    emit 表示对某一类型的事件进行一次分发

  15. 看代码说结果

    setTimeout(() => {  console.log('setTimeout1')})
    Promise.resolve().then(() => {  console.log('promise1')})
    setTimeout(() => {  console.log('setTimeout2')})
    Promise.resolve().then(() => {  console.log('promise2')})
    Promise.resolve().then(() => {  console.log('promise3')})
    console.log('script end');

      本来三面要接着面,不过三面面试官有事,就换时间了,没想到...

三面#

  三面没问什么八股文也没做题,上来聊了几句后就给了两个场景题,写了点伪代码 + 场景实现分析

  第一个场景题:要实现一个搜索框该怎么做,讨论了一下,首先是防抖\节流,然后是异步请求和页面数据显示的问题,面试官提示可能后一个请求会先于前面的请求返回。

  然后写的时候想复杂了,卡了好一会儿,在面试官的指点下定了一个简单的方案,就是根据当前输入框中的数据与请求结果进行匹配,只显示当前输入框中的返回数据,其余返回结果都抛弃或是中断正在进行的请求等。

  第二个场景题:后端收到前端的这个搜索词条后,要进行模糊查找,不过现在有100W条数据(总之就是很多),要怎样高效的查找呢?

  然后这些查找到的数据假设也有很多,但是前端只需要显示那么几条数据,该怎么处理呢?

  还问了一些其他问题:

  1. 你是怎么学习前端的

  2. 说一下你的优点和缺点

  3. 什么时候能来实习

  4. 问了之前的一些经历

  5. java 手写单例模式...忘了,这么经典的设计模型都忘了,我是 FW T_T

三面(二)#

  之前第的三面蹦了,然后说加一轮面试,还以为是原来那个组的,面完才知道是同个团队下的其他组。

  面完后没过多久 HR 就通知过了~

  1. 你觉得你前几轮面的怎么样(当然不太行...,说了自己觉得面蹦的地方
  2. 对之前没答好的知识是否有回顾,具体说了一下
  3. 单例模式、工厂模式及其应用举例
  4. 问项目及其相关内容
  5. JS里 new 运算符后发生了什么
  6. 如果要在屏幕上渲染一个立方体,鼠标拖动要能够旋转等,怎么做
  7. CSS 动画属性,举个最简单的动画效果例子要怎么实现
  8. 前端页面优化方法
  9. HTTP2.0
  10. CDN
  11. 懒加载怎么实现

6. 拼多多#

一面#

  遇到了之前春招实习面试的面试官...我刚面的时候就发现有点眼熟,然后最后反问环节面试官说看我的简历也有点眼熟,之前面过一个简历里的项目很像的人,然后就互相认出来了哈哈哈

  1. 项目介绍,遇到的难点以及如何解决
  2. 修改过源码的库要如何和别人的开源仓库保持一致
  3. 对 ThreeJS 底层有什么了解
  4. 对游戏开发有了解吗,游戏渲染引擎有了解吗
  5. react 是用什么版本的
  6. 生命周期函数
  7. hooks 有了解过吗
  8. webpack 优化做过吗
  9. 前端安全,CSRF,POST 攻击怎么做,如何让用户感觉不到发起攻击,CSRF 相关的问了好久...还答的比较差
  10. 顺序数组合并
  11. 有什么擅长的但没问
  12. ES7 的 await 和 async 要怎么转为低版本代码
  13. babel 原理,像 await 这些 babel 是怎么做的

  不过一面有点蹦,多亏了春招脸熟加成,不然可能就得挂了😅

二面#

  1. 项目介绍
  2. 最近有写什么代码什么项目吗
  3. 对 react 框架的看法和理解
  4. 对组件的理解
  5. 对类组件和函数组件的看法和理解,什么时候使用类组件什么时候使用函数组件
  6. state 和 props 的区别
  7. hooks,useEffect 的用法
  8. redux 流程
  9. 组件间的通信方式
  10. 手撕代码:按从小到大的顺序合并多个数组并去重
  11. let 、const 和 var
  12. 函数作用域,如何获得函数作用域中使用 var 申明的变量
  13. 箭头函数和普通函数的区别
  14. 如何改变函数的 this 指向
  15. flex 布局及其属性
  16. Flex布局实现在一个导航栏中,有两个固定宽高的元素,它们分别在最左和最右同时相对导航栏垂直居中
  17. flex-between 和 flex-around 的区别
  18. css 中的单位属性(px、%、vw、vh、em、rem)
  19. html 渲染步骤
  20. 哪些会阻塞页面渲染,除了 js 呢
  21. js 异步加载(async、defer)
  22. 如何计算页面的渲染时间

三面#

  三面面试官人很nice,语气比较温和,基本全程都在微笑。面试过程更像是聊天,相比于其他面试会轻松很多,面试体验很棒

  1. 聊项目

  2. 为什么选择前端

  3. 对ThreeJS中光源和材质的了解

  4. 聊毕设

  5. 一道题:给定一个数组,无序,无重复值,值的范围为 1 - 100,但少了两个数,如何在一次遍历中求出

  6. 对 pdd 有什么了解

前前后后聊了快四十分钟