2021年6月-7月份大厂面试经历分享

955 阅读7分钟

开篇先允许我自我介绍一下,作者本人前端开发5年经验。一直在小厂徘徊,主导做过一些开发规范也自研了团队内部的cli脚手架。整体的技术深度还比较欠缺...所以大家就当看个乐吧,有不对的地方欢迎各位大佬指出。

因为我电脑总是频繁的蓝屏(iMac,不知道咋回事),所以资料丢失了很多。

对了,还需要额外介绍一下我的职业经历,我最近一份的工作经历是作业帮。

其实这次面试对我收获挺大的,同时而言带来的打击也是比较多的...我面试的初衷是希望大家能够达到良性的沟通,就算最后没有办法当同事。也希望能给彼此带来收获和成长(同时也避免卷)。

因为我还在不断的面试中,所以有面试经验也会不断的分享出来,大家可以持续关注~

阿里(夸克)

一面:

  • 自我介绍(开发规范,cli)
  • 开发规范实际遇到的问题(人的问题与技术的问题)
  • 为什么辞职?
  • cli的原理和研发过程遇到的问题
  • low code平台组件的技术难点

面试完以后,主要聊的是从做事情的角度来作答的,较少聊技术细节。所以一面面试官觉得我整体技术的深度和广度都欠缺一些。但是看在老乡的面子上...还会给我二面的机会。后续下午告诉我,他和leader聊完以后,leader觉得没必要再聊了。后续也没有二面了。

百度(小度)

一面:

  • 自我介绍
  • 需要请求200个url,一次性只能发送10个,该怎么在最短的时间内(持续维护10个并发请求队列)请求完
  • display: flex的原理和flex:1的作用
  • 移动端适配,rem。
  • cookie和session的区别和关系
  • http的状态码,为什么服务端要自定义状态码
  • cookie跨域的问题
  • 普通函数和箭头函数的区别
  • koa和express的区别

面试完以后,面试官也是觉得可以过二面,后续和leader商量完以后...说位置已经有更合适的人了。其实本身这个岗位是全栈工程师...从我的角度上而言,也会有一点点的不match。

美团(金融)

一面:

  • 自我介绍
  • 推代码规范的细节以及后续的发展
  • 代码规范团队的执行程度以及收益
  • 工程化方面的思考
  • 算法题 - 有效的括号(2种实现思路及方案,并且分析优劣势)
  • 算法题 - 数组中找到重复的元素(4种实现思路及方案,lastIndexOf和indexOf的方案最优,因为借助浏览器实现)
  • Event Loop(给出一段示例代码,描述执行结果)
  • 面试之外
    • 之所以不问Vue源码和JavaScript基础,是因为我的方向偏架构和基建方向。其他问题留给接下来的面试考察。
  • 你还有什么要问我的吗?(除了没办法直接告知面试结果,其他都可以)
    • 假如入职以后,工作职责是什么?(基建和架构方向的工作,可能会涉及到一些业务)

二面:

  • 自我介绍(规范、cli)
  • 规范推进遇到的问题
    • 人的问题
    • 团队支持度的问题
    • 老项目的问题
    • 时间成本
  • 前端微服务
  • 团队管理
    • 精力占比
    • 如何管理团队
    • 梯队划分
    • 职责划分
  • 可视化平台
    • 物料(动态物料,静态物料)
  • 离开作业帮的原因
  • 美团团队介绍
    • 团队规模,预计招聘人数
    • 岗位职责以及后续负责的事情
    • 业务模式介绍
  • 求职意向

后续主动给HR打电话,HR表示未通过。我追问了一下原因,HR表示...面试官直接在群里面说不合适了,暂时未有其他原因。

滴滴(金融)

一面:

  • 自我介绍(代码规范、脚手架)
  • cli脚手架模板的分层与继承
  • HTML中 有什么用
  • Cookie跨域共享(子系统登录的问题)
  • 同源策略
  • localStorage存满了会发生什么
  • JavaScript原型链
  • new一个构造函数,原理发生了什么?
  • async、await的实现原理(语法糖和Generator)
  • for of和for in 的区别以及原理
    • for of是否可以使用async await
    • for in 能不能遍历出构造函数原型的属性
  • ES6的自定义遍历结构
    • Reflect
  • 宏任务和微任务
    • 简述Event Loop运行机制
    • 微任务中假如写一个死循环,是否会执行下一个微任务?
    • web workers中假如写一个死循环,是否会阻塞其他线程
  • 输入一个url到网页呈现的过程
    • 浏览器在解析HTML的过程中,生成DOM树,解析CSS规则树
    • 浏览器布局渲染(父div的高度为auto,子div的高度为500)这个时候怎么渲染
    • css背景图片的加载时机是什么
  • https的加载过程
    • http2.0有什么新特性?
  • 服务端渲染
    • nuxt.js
  • 为什么要有BFF?
    • 对性能的影响原理是什么?
    • 除此之外其他的优势有哪些?
  • H5与客户端的通讯方式
    • JSBridge
    • 双向通讯
  • 目前的求职意向
  • 你还有什么要问我的吗?
    • 我假如有机会入职的话,这个岗位的职责是什么?在团队大概负责什么样的事情

二面:

  • 自我介绍
  • TypeScript类型推导
    • typeof
    • 联合类型
    • 断言
    • 泛型
  • Vue3.0和2.0的区别
    • 源码体积的优化
    • 数据劫持的优化
    • diff算法的优化
  • 继承
    • class extends
    • 深拷贝
  • Promise原理
    • 微任务、宏任务
    • resolve和then
  • Promise.all原理
    • 计数器模式
  • 设计模式
    • 单例模式
    • inject feature

三面:

  • 自我介绍(开发规范,cli)
  • 开发规范推行过程中遇到的问题
    • 人的问题(看法,理解,接受度,技术影响力)
    • 技术的问题(增量检查,执行状况监测分析)
  • Docker容器化带来的好处
    • 持续部署与测试(消除了线上线下的环境差异)
    • 环境标准化与版本控制(回滚,压缩、备份)
    • 跨平台性与镜像
  • cli后续的想法与扩展
    • 工作台的概念
    • 增加部署能力
  • 带团队方面的经验
    • 梯队划分
    • 精力安排
    • 行为准则
    • 技术成长
      • 技术分享
      • 业务抽象
  • 你还有什么要问我的吗?
    • 假如可以入职的话,以后对我的预期是什么

火花思维

一面:

  • 自我介绍
  • 手写一个Promise
  • 浏览器输入url的过程发生了什么?
    • 重排、重绘
    • 负载均衡、集群
  • HTTP
    • 有多少种版本?
    • 每个版本有什么差异?
    • HTTP2.0的传输方式
  • JavaScript原型链
    • 为什么要有原型链
    • 原型链的__proto__
  • 客户端和Webview通讯
    • 怎么通讯
    • DeepLink
  • 性能优化
    • 通过技术分析问题
    • 首屏优化
      • HTTP优化
      • 接口优化
      • 缓存
      • 控制渲染时序
  • Vue源码 - 初始化过程、nextTick
  • webpack自定义loader,plugins
  • JavaScript垃圾回收机制
    • 标记清除
    • 计数
    • Chrome V8是怎么做的?
  • 介绍@axe/cli脚手架写的过程中遇到了什么难题
    • 模板组合的难题
    • 数据传输的难题
    • 路径确定的难题
  • 算法题(看到我的LeetCode,面试官觉得没必要了)

二面:

  • 自我介绍
  • 业务问题

因为我的电脑蓝屏了...所以当时的资料丢了,但是我唯一印象比较深刻的就是...二面面试官提问的方式比较小白,希望候选人从盘古开天辟地的时候谈起...