前端面试经常问到的一些点

2020-06-13 16:55:03 浏览数 (1)

1、自我介绍环节

这个环节很显然是避免不了的,这个环节候选人应该注意不要平铺直述自己的简历,而是应该尽量做到熟练清晰的介绍自己的教育背景,工作履历,及自己参与过的几个重大的项目,在里面分别承担了什么样的角色,使用什么技术解决了什么样的问题,以及取得了哪些成绩。如果你这部分说的比较刘畅,有底气,不卑不亢,会给面试官一个很好的第一印象,最起码的,会觉得你思维清晰,能够清晰的认识自己的优缺点,简历上提到的一些点大概率都是你自己的产出。

2、前端基础知识考查

这个环节通常所谓的一些点包括:

  1. javascript基础
    1. 闭包
    2. this指向,bind,call
    3. 原型链
    4. 面向对象,如何实现继承
    5. 作用域,var,let区别
    6. 浏览器兼容
    7. 数组、字符串对象考查,例如数组哪些操作可以改变原数组、正则表达式匹配等(一般比较基础,不会太复杂)
    8. cookie,跨域发送cookie等。
    9. session
  2. 网络相关
    1. TCP链接及断开过程,http状态码,304,302,401,20x
    2. Https原理,加密过程
    3. Http2,多路复用,头部压缩
    4. 跨域,如何解决等
  3. 前端缓存
    1. LocalStorage
    2. SessionStorage
  4. 前端安全
    1. xss
    2. csrf
  5. 性能调优
    1. 内存泄漏
    2. ANR

3、编码能力

面试官其实也很care这个环节,如果前面的环节回答的不错,这个环节一般来说,能写出思路基本也可以算过了,但好像某条不是的,某条必须让代码运行通过,各厂要求不一样,既然人家定那种规则就按照哪个规则去办就是哪,对于某条,没有其他办法,面试前,所刷刷leetcode中等难度吧。

如果说前面环节比如基础知识考查回答的不是太理想,这个环节就要注意了,这时候面试官可能会对于你这个环节的期望会高一些,尽量从以下几个方面注意:

  1. 避免随意命名,因为随意命名面试官会认为你代码风格不佳,尽量命名有意义一些。
  2. 尽量不要拿到题目就写,给人一种没有思考就草草入手的感觉,试着想一想,你平常工作是这样的么,拿到一个需求不考虑下各种边界逻辑吗?所以,比较好的做法是:
    1. 先写一下伪代码
    2. 考虑下可能存在的边界条件
    3. 如果是递归实现,看看考虑是否可以转为非递归,(借助stack)
  3. 尽量可以保证代码跑起来,因为前面环节表现不佳,至少这个环节,让面试觉得你可能是一个实战型的选手。

在这个环节,通常会考查一些基本算法,或者前端常用的一些算法,比如:

  1. 排序,二分查找
  2. 输出数组的全排列
  3. 动态规划问题,最长公共子序列、最长上升子序列
  4. 字符串,正则表达式,数组的一些操作
  5. 手写防抖节流
  6. 手写一个promise的实现
  7. 深度克隆一个对象(注意对象属性指向自己,利用map保存中间结果),大数相加(数组 进位)
  8. 实现bind方法
  9. 实现Object.create方法

4、架构设计、工程化

如webpack常见的一些配置项,webpack插件原理,webpack插件开发等,持续构建CI,CD等等。

5、意向素质

这个环节,面试官会评估一下你在同事中的印象是怎么样的,人缘如何,近期你为啥要换工作,稳定性等等因素。

或许还会问问你的学习能力如何,解决问题的能力如何:

  1. 工作中遇到的印象最深的一个技术难点是什么,讲一下怎么分析这个问题,最后怎么解决这个问题,以及前后对比的结果,避免说的空泛,也不要避免假设,最好是拿你真实案例来说。
  2. 你平常有没有看一些开源的库,印象比较深刻的是哪个库,谈一谈他的架构设计。
  3. 产品发布上线,遇到bug,用户访问除了问题,你是怎么处理的,主要考查应变能力。

0 人点赞