# 一面

# CSS选择器及优先级

# CSS有什么布局方式

# 各种布局之间有什么优缺点

# 你用过什么CSS预编译器

# less 有什么缺点

# 有遇到过1px的问题?知道如何解决吗?

# js里面有什么数据类型

# 有哪些判断方法可以判断类型?

# es6中let、const和var有什么区别

# const声明的变量怎么修改

# 箭头函数和普通函数的区别

# 事件代理

# 数组有什么方法

# 如何往数组中插入一个值

# 浏览器cookie、localStorage、sessionStorage的区别

# 除此之外,前端还有什么存储方案

# 对前端的安全有什么理解

# 对闭包的理解

# 简单的实现一个闭包

# Angular和React的区别

# 二面

# 项目中有redux迁移mobx,详细说一下原因

# 这二者有什么区别

# 介绍一下高版本React和低版本React之间的api废除的理由

# setState 是同步还是异步

# 在setTimeout中,是否会进行批量更新

# 说一下React的合成事件

# 说一下函数组件和class组件的区别

# 对比一下hook和hoc的优势

# 说一下graphql解决的问题

# 做过的seo优化

# 说一下JWT机制

# 实践题

假设有一个网站(HTTPS)需要对传输的数据进行加密改造,请针对这个网站的源代码进行改造,让它包括它所依赖的第三方库发出的请求都能进行加密,以及它们的响应都能进行解密。

要求:

  1. 当前加密解密方案涉及第三方,但不能修改第三方代码;
  2. 尽可能减少对业务代码的侵入

# 实践题

结合上一题,加解密所需要的密钥需要从服务端获取,请你设计一套方案,保证每一个请求之前,都能通过密钥对数据进行加密。

# 如何预防网站劫持

# 实践题

假设一个页面中,当前模块需要分别请求多个接口(接口可能关联也可能不关联),你需要对请求回来的数据进行组装,请问如何进行优化。

# 首屏优化

# 说一下你对前端开发的理解

# 做过的项目的难点以及如何解决

# 离开的原因

# 职业规划