“寒冬”三年经验前端面试总结(含头条、百度、饿了么、滴滴等)

前言

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

2019也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。


往期

  1. "寒冬"三年经验前端面试总结(含头条、百度、饿了么、滴滴等)之手写题(一)
  2. "寒冬"三年经验前端面试总结(含头条、百度、饿了么、滴滴等)之手写题(二)
  3. "寒冬"三年经验前端面试总结(含头条、百度、饿了么、滴滴等)之手写题(promise篇)

面试准备

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

笔试题

笔试题一般考的都是基础知识,复习基础知识建议看书,高程和你不知道的JS都行,会讲的比较细。

CSS

css基本上每个公司也都会问,但是问的不会很深,都是一些常见的问题。

  • 盒模型
  • 垂直居中方法
  • 三栏布局
  • 选择器权重计算方式
  • 清除浮动的方法
  • flex
  • 什么是BFC、可以解决哪些问题
  • position属性
  • 如何实现一个自适应的正方形
  • 如何用css实现一个三角形

手写题

手写题每个公司都会有,范围也比较固定,如果之前好好准备的话,应该没什么问题。

  • 防抖和节流
  • 深拷贝
  • 数组去重、数组乱序
  • 手写call、apply、bind
  • 继承(ES5/ES6)
  • sleep函数
  • 实现promise
  • 实现promise.all
  • 实现promise.retry
  • 将一个同步callback包装成promise形式
  • 写一个函数,可以控制最大并发数
  • jsonp的实现
  • eventEmitter(emit,on,off,once)
  • 实现instanceof
  • 实现new
  • 实现数组flat、filter等方法
  • lazyMan

ES6

现在基本上都会使用ES6开发。ES6也成为了一个面试必考点。一般面试官都会问用过ES6的哪些新特性,再针对你所回答的进行深入的提问。

  • let、const、var区别
  • 箭头函数与普通函数的区别
  • 变量的结构赋值
  • promise、async await、Generator的区别
  • ES6的继承与ES5相比有什么不同
  • js模块化(commonjs/AMD/CMD/ES6)

浏览器相关知识

浏览器相关知识几乎是每个公司都会问到的考点,里面涉及的东西也比较多。其中缓存、http2、跨域必问。

  • 从输入URL到呈现页面过程
  • 强缓存、协商缓存、CDN缓存
  • HTTP2
  • HTTP状态码
  • 三次握手与四次挥手
  • 跨域(JSONP/CORS)
  • 跨域时如何处理cookie
  • 垃圾回收机制

web安全

一般我都会从xss和csrf说起。

  • https
  • 什么是xss,如何预防
  • 什么是csrf,如何预防
  • 为什么会造成csrf攻击

事件循环

事件循环绝对是一个必考题。其中涉及到宏任务、微任务、UI渲染等的执行顺序,浏览器端的必须要掌握,node端的有精力的最好也能掌握。

框架(vue)

因为我一直用的都是vue框架,所以问的也都是跟vue相关的。vue中的高频题也不外乎双向绑定、虚拟dom、diff算法这些。

  • watch与computed的区别
  • vue生命周期及对应的行为
  • vue父子组件生命周期执行顺序
  • 组件间通讯方法
  • 如何实现一个指令
  • vue.nextTick实现原理
  • diff算法
  • 如何做到的双向绑定
  • 虚拟dom为什么快
  • 如何设计一个组件

webpack

webpack也基本上成了必考的内容,一般会问是否配置过webpack、做过哪些优化之类的。

  • 用过哪些loader和plugin
  • loader的执行顺序为什么是后写的先执行
  • webpack配置优化
  • webpack打包优化(happypack、dll)
  • plugin与loader的区别
  • webpack执行的过程
  • 如何编写一个loader、plugin
  • tree-shaking作用,如何才能生效

性能优化

  • 首屏加载如何优化
  • 一个网页从请求到呈现花了很长时间,如何排查

因为之前的经历大部分都集中在PC端,所以移动端的经验比较少。面试官也不会一直问你移动端的东西,问也就问一些常见的问题,比如1px问题、如何适配等。react用的也不多,问的也不多,也就会问问react与vue的对比之类的问题。

基本的问题过了之后,有的面试官还喜欢问一些开放性的问题。比如平时都是如何学习的、最近了解了什么新技术、未来的职业规划、为了达到这个目标目前做了什么努力等等。

总结的基本上就是这么多了,上面问题的答案我也会陆续给出,给大家一个参考。
喜欢的可以点个收藏哈~
最后预祝看了此篇文章的小伙伴们都能收获多多的offer,找到自己满意的工作~


step by step
记录前端学习之路,每天进步一点点,帮助大家一同成长。
2.2k 声望
2.7k 粉丝
0 条评论
推荐阅读
去年那个女,30+,已婚,未育的前端打工人2022年过的怎么样
2022 年的年终总结比 2021 年来的稍晚一些,最主要的原因当然不是因为我的拖延症,而是真真正正的是因为身体原因,给自己找了一个很好的借口。变身小阳人的那几天真的是一心只想在床上躺着,其余的都是 whatever...

阳呀呀3阅读 1.3k

封面图
JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy45阅读 5.8k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木63阅读 6k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs39阅读 6.2k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木41阅读 7.2k评论 6

CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan42阅读 2.8k评论 14

封面图
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库

XboxYan34阅读 2.3k评论 2

封面图
2.2k 声望
2.7k 粉丝
宣传栏