三年经验前端开发面试总结

前言

跳槽是每个人在职业生涯中都必须经历的过程。无论你是搜索这篇文章还是无意中浏览这篇文章,我希望你不要在这里浪费时间,这会给你下次或将来的书面面试带来一些帮助。

2019年可能是互联网未来10年中最好的一年。冬天来了。但如果你不真正尝试,你永远不知道市场是什么样的。经过这次的求职,我觉得市场不是那么糟糕,我还得到了几家大工厂的录用。这是我的总结,我希望能帮助有需要的学生。


面试准备

面试准备是以每个人的知识为基础的,准备时间不同。现在对于前端工作来说,以前可能不太重视算法,但现在很多公司也会参加考试。我建议你空闲时多刷些利特码。准备算法需要很长时间。需要掌握大部分的前端基础知识,然后有针对性的对算法进行回顾。在面试过程中,算法肯定可以加分,但如果做不到,就不会一票否决。面试官也会给你一些建议。

笔试试题

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

CSS

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

  • 箱型

  • 垂直中心法

  • 三栏式布局

  • 选择器权重计算方法

  • 如何清除浮动

  • flex

  • 什么是bfc,什么问题可以解决?

  • 位置属性

  • 如何实现自适应平方

  • 如何用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

  • 函数currying

     

ES6

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

  • let,const,var差异

  • 箭头函数与普通函数的区别

  • 变量的结构赋值

  • promise、async await和generator的区别

  • es6和es5的继承有何不同

  • js模块化(commonjs/amd/cmd/es6)

浏览器相关知识

浏览器相关知识是几乎每个公司都会问的考点,涉及的东西很多。其中,cache、http2和跨域都是必须的。

  • 从输入URL到呈现页面过程

  • 强缓存、协商缓存、CDN缓存

  • HTTP2

  • HTTP状态码

  • 三次握手与四次挥手

  • 跨域(JSONP/CORS)

  • 跨域时如何处理cookie

  • 垃圾回收机制

网络安全

我通常从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,找到自己满意的工作~

  • 11
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值