关于前端:2021前端面试总结

52次阅读

共计 2487 个字符,预计需要花费 7 分钟才能阅读完成。

大家看到这篇文章的话我应该曾经从阿里到职退出新公司了,这篇文章是我对最近换工作面试的一个总结。

先上后果吧,我先后面了 4 家公司:小红书(口头 offer)、滴滴(口头 offer)、贝壳(口头 offer)、快手(offer)。

筹备阶段

口试开始有跳槽筹备的想法开始刷 leetcode 到理论开始面试大略经验了两个半月。而我集体对于面试的后期筹备依照以下几局部循序渐进的进行:

  • leetcode 刷题;
  • JS & CSS 根底;
  • React 根底;
  • 工程化 & 架构 & 计算机根底;
  • 基于简历的扩大

leetcode 刷题

刷算法题是当初社招面试的必考局部,也是令很多前端同学头疼的中央(包含我)。刷题是很苦楚的一个过程,最好找一个气味相投的小伙伴一起进行(一个人真的很难很难)。这里我就不分享刷题的教训了(网上一搜一大把)仅分享下我对于刷题的大体节奏来给大家分享。

leetcode 这边我是和一个后端小伙伴是放弃了每天 2-5 道不等的节奏从 1 月中旬开始刷直到面试开始(4 月初),总共刷了 147 道简略题,11 道中等题。当然我的后端小伙伴还会本人刷中等和艰难题,我对本人的认知就仅限在简略题,而对于 3 年左右社招的前端来说,简略题就够用了。

JS & CSS 根底

笔者始终从事中后盾相干的开发,对于一年都写不了几行 css 的我间接抉择疏忽了温习 css…(不倡议大家这么做 …),而对于 JS 根底我是依照以下几个维度温习(学习)的。

  • 类型

    • 类型转换
    • 类型判断
    • 深浅拷贝
  • 函数
  • 原型 & 原型链
  • new 操作符
  • 对象创立 & 继承
  • 执行上下文

    • 变量(流动)对象
    • 作用域 & 作用域链
    • this
  • 闭包
  • EventLoop

    • task
    • micro task
  • ES6 & next

    • let & const
    • Map、Set、WeakMap、WeakSet
    • 箭头函数
    • 迭代器
    • for of
    • Generator
    • Promise
    • async、await
    • class
    • import、export
  • 模仿实现

    • bind、call、apply
    • new
    • Promise
    • instanceOf
    • map、filter、reduce、flat
  • 编程技巧

    • 实现 compose
    • 实现 curry
    • 实现深拷贝

React 根底

  • 生命周期

    • mount 阶段
    • update 阶段
    • unmount 阶段
    • error
  • JSX
  • setState

    • 同步异步
  • 虚构 DOM

    • diff 算法
  • 事件零碎
  • Hooks

    • 原理
    • useEffect
    • useCallback
    • useRef
  • Fiber
  • 状态治理
  • 路由治理
  • 性能优化

工程化 & 架构 & 计算机相关

  • webpack
  • babel
  • cdn 原理
  • 浏览器缓存
  • 根本的数据结构和算法

基于简历的扩大

  • 组件 & 组件库设计
  • 微前端 & 其余计划的设计

    • 原理
    • 子利用加载
    • 沙箱隔离
    • 路由劫持
    • 利用间通信

面试阶段

筛选机会

找机会我是采取猎头 + 内推两种形式同步进行的。

找猎头的话能够挖掘很多机会不错并且本人没有关注到的公司和职位,并且猎头会基于你的本身状况有选择性的举荐职位并全程陪跑:后期机会沟通、每轮面试跟进、前期 offer 推动甚至薪资 argue(如果自身我的项目压力大并且想看机会的同学能够思考,真的很省心,然而须要找到一个靠谱的猎头)。

找前共事内推的话能够更间接的理解这个公司的气氛、工作内容以及其余杂七杂八的事,并且真心想挖你的共事也会帮你和老板还有面试官说坏话~

在筛选机会以及安顿面试的时候大部分同学想的都是先找几个小公司练练手,而后开始投大厂。其实我也是这么做的,只不过我抉择的面试的公司都是我有趣味并且面试通过可能会去的。

  • 第一波:我会抉择具备肯定规模并且我感觉有发展前景的独角兽公司;
  • 第二波:我会抉择一些二线厂子的外围业务部门或者我感觉有前景的赛道;
  • 第三波:一线大厂或者热门赛道的头部公司;

面试

面试这边的话我一共是面了 4 家公司,原本还想接着面面,然而说实话每家公司至多 4 轮面试,4 家公司我一共面了 18 轮,均匀下来 2 天至多一轮面试,面到前期显著感觉疲乏(因而倡议大家还是适可而止量力而为吧~)。

笔者始终从事 B 端相干的前端开发,面了这么多轮总结起来 B 端相干的热点词汇:微前端、组件库、低代码、搭建。

一面

一面以根底为主(也有基于我的项目考查基础知识的):自我介绍、JS + CSS 的考查、框架的考查、计算机根底相干的考查、算法题。

上面列出我在面试时候遇到的一些考察点:

  • 作用域的了解
  • EventLoop

    • 原理了解
    • 考查执行后果程序的一道题(网上很多,根本差不多)
  • Promise

    • 基本概念的考查
    • then、catch 链式调用程序的一道题(网上很多,根本差不多)
  • 深拷贝的实现
  • 装璜器的原理
  • call、apply、bind 函数的模仿实现
  • for 循环和 for of 循环的区别是什么
  • React diff 算法的原理
  • React setState 同步异步的原理
  • React Fiber 的原理,为什么要引入 Fiber
  • Redux 的原理,解决了哪些问题
  • 浏览器缓存,我的项目中如何更正当的利用缓存
  • 程度垂直居中的实现
  • flex:1 0 0 对应的含意是什么
  • 实现一个款式
  • BFC 是什么?用来解决什么问题?

上面是基于我的我的项目和简历的一些问题:

  • 业务组件库的设计思路
  • 组建的按需加载怎么实现的
  • webpack 中 import require 的原理
  • 性能优化的思路

二面

二面曾经开始基于我的项目考查知识点,问题大多是基于简历上的我的项目延展进去的。

上面列出我在面试时候遇到的一些考察点:

  • 微前端是什么?解决了哪些问题?为什么应用微前端?和 iframe 的比照?
  • 微前端沙箱隔离的原理?
  • 微前端落地选型时候的思考?
  • 除了应用微前端框架在微前端上还做了哪些扩大?
  • 业务组件库怎么设计的?为什么要应用业务组件库?
  • 业务组件库如何推广?在落地期间遇到了哪些问题?

三面 & 四面

三面 & 四面很多都是考查业务的理解能力和集体综合能力考查。

  • 对当前工作业务域的了解;
  • 已经工作遇到过最大的挑战是什么、怎么解决的、有什么播种;
  • 对技术深度和广度的了解;

HR 面

HR 面的话都是考查软实力相干,也会询问一些业务问题,这里就不过多的赘述了。

总结

其实离面试到当初曾经过来了很久了,能记起的货色还是无限,还是差很多货色的,请大家体谅。这里心愿大家都能拿到本人称心的 offer。

最初打个广告:

咱们是快手商业化广告团队,目前还有大量 HC,感兴趣的分割我,我发你 JD,你发我简历哈哈哈。

正文完
 0