# 一面

# 自我介绍

# 缓存分类

# 跨域

# 前端安全和攻击

# 内容安全策略(CSP)

# cookie、session|insert(题目没听清楚)

# var let 区别

# 有哪几种作用域

# 闭包的理解

# 异步的理解(事件循环)

# async/await、Promise、generator 的区别

# class 的理解

# new 的实现机制

# webpack 打包原理

# 首屏渲染优化的理解

# seo 有什么理解

# 服务端渲染的原理

# react 某些生命周期被废弃的理由

# fiber reconciler 和 stack reconciler 的区别

# useState 和 useRef 的区别

# hooks如何清除副作用

# ts 的 type 和 interface 的区别

# 二面

# fiber 架构是什么

# diff 算法实现思路

# key 在 diff 算法中的作用

# diff 算法时间复杂度

# diff 为什么这么高

# fiber 节点是一个什么数据结构

# 开发组件基于什么原则

# 迁移 ts 的过程

# 迁移过程中遇到的问题

# ts 的 type 和 interface 的区别

# ts 里面如何声明函数的重载

# ts 元组和数组的区别

# ts 元组的使用场景

# esm 和 cjs 的模块化的区别

# pc 端上常见的性能优化手段

# HTTP 缓存机制