# 一面
# 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)需要对传输的数据进行加密改造,请针对这个网站的源代码进行改造,让它包括它所依赖的第三方库发出的请求都能进行加密,以及它们的响应都能进行解密。
要求:
- 当前加密解密方案涉及第三方,但不能修改第三方代码;
- 尽可能减少对业务代码的侵入
# 实践题
结合上一题,加解密所需要的密钥需要从服务端获取,请你设计一套方案,保证每一个请求之前,都能通过密钥对数据进行加密。
# 如何预防网站劫持
# 实践题
假设一个页面中,当前模块需要分别请求多个接口(接口可能关联也可能不关联),你需要对请求回来的数据进行组装,请问如何进行优化。