字节一面
讲项目
css 权重
hooks
发布订阅模式
js 执行逻辑(箭头函数不能改变this指针、this执行问题)
csrf
美团一面
sso 登录
token 怎么做同一登录机制,不同的三级域名怎么访问token
react 怎么识别组件和原生标签
360一面
margin、padding设置百分比时,依赖宽度还是高度计算
有没有用BEM之类的
var、let、const 的区别
深拷贝、浅拷贝
...扩展运算符对数据的要求
项目中的难点
好未来一面
讲项目
做题:寻找字符串中重复次数最多的字符以及次数
优化
对新技术的了解
浏览器渲染流程
http2的优化
字节二面
nginx 负载均衡怎么做
函数柯里化
跨域策略以及解决方案
预检请求、怎么触发预检请求
常见的前端性能监控指标
requestAnimationFrame、setTimeout 的区别
react、vue 的区别
react 怎么做的并发更新、原理
组件怎么复用逻辑,hooks、HOC、render props
render props 不好的地方
event loop 和 浏览器刷新帧率有没有关系
webpack 常见插件
loader 和 plugin 的差别、执行时机的差别
loader 的输入和输出是什么
常见的打包格式
怎么维护好一个 npm 包
发送一个请求,整个链路中可能遇到的缓存
百度一面
清除浮动
左右固定,中间自定义布局
两数之和
盒子模型
vue key 的作用
闭包
webpack 构建过程
讲项目
好未来一面
项目怎么做到按路由分包
csrf、xss
怎么构建压缩资源
微前端js隔离
寻找类似二叉树的数组对象的最大深度
怎么给 js 的 npm 包添加ts声明
type omit 工具函数
美团二面
http2和http1的差别
http stream
百度二面
webpack 热更新
http缓存
讲项目
好未来二面
无重复字符的最长子串
ts的函数重载、类型断言
讲项目
360二面
requestIdleCallback 的应用
vue2 的数据劫持
react 并发模式
pnpm 和 npm 的区别,解决了什么问题
讲项目
事件循环
vite 为什么快
浏览器的一帧做了哪些事
commonjs 和 es module 的区别
360三面
浏览器窗口跨域通信
实现发布订阅模式
cookie samesite
螺旋矩阵
自定义hook实现类组件的类似constructor函数
字节一面
flex 字段的属性
实现 instanceof
SPA和MPA优缺点
react fiber
实现useToggle,简单的hook
讲项目
微前端解决了什么问题
跨域名窗口通信
强缓存和协商缓存
小红书一面
函数式编程和面向对象编程的区别
实现单例模式
实现compose函数
mvvm和mvc的区别
react diff过程
useCallback 和 useMemo的区别
v-model 的原理
vue组件间通信
vue双向数据绑定
react和vue的区别
react 单向数据流优点缺点
ts函数重载
type和interface的区别
ts infer的作用
react fiber 架构
react 18新特性
hooks存储的位置
讲讲常见的设计模式、以及工作中用到的
微前端 shadow dom
proxy沙箱和快照沙箱
字节二面
es6等高级语法怎么在浏览器运行 babel,polyfill
react 性能优化
react18 新功能
实现 useForceUpdate
做题
讲项目
内存泄露
ts infer
ts any、unknown、never 的区别
ts 中一个类型能赋值给另外一个类型的条件,子类型
babel runtime 的作用
美团一面
讲项目
实现深拷贝
微前端js隔离、css隔离
贝壳一面
如何实现上传图片、预览
cooke的httpOnly属性和SameSite属性
跨站和跨域的区别
两数之和
讲项目
百度一面
讲项目
深拷贝
实现Rate评分组件
实现button、同时支持防抖
umd、amd、es module
amd 怎么实现
去哪儿一面
讲项目
浏览器缓存
fiber架构
useMemo、useCallback
promise 限制请求并发数
去哪儿三面
讲项目
域名怎么生效的
美团一面
讲项目
歌词提取函数
美团二面
讲项目
实现 promise.all
将两个有序数组合并成一个,在第一个数组上进行操作,要求O(n)的时间复杂度和O(1)的空间复杂度。例如:[1,2,3],[2,5,6]结果为[1,2,2,3,5,6]。
[{id: 1, w: 1}, {id: 2, w: 2},{id: 1, w: 2},{id: 2, w: 1}],去重id相同的数据,保留id相同数据的最大w,同时保留之前的顺序。结果:[{id: 2, w: 2}, {id: 1, w: 2}]。
useState 返回的第二个函数是同步还是异步、产生的任务是宏任务还是微任务。