京东一面:
-
promise什么时候到resolve什么时候reject
-
有几种盒子模型?说一下区别
-
css适配,如何实现
-
如何防止页面阻塞(script标签过多的情况下)
-
本地存储
-
清除浮动的四种方式
-
class和interface的区别
-
获取dom会返回一个什么东西
-
dom是在那个生命周期渲染的
-
watch和computed
-
深拷贝的几种方式?手写递归实现
京东二面:(逆天加时赛)
-
express和koa的区别,为什么选择使用koa?
-
对vue编译原理的理解?说一下diff算法的实现思路(背了一下口诀速通)
-
你的项目如何实现jwt鉴权的?
-
我分两端进行回答,koa中间件的单匙加密,每次请求之前都要先进行鉴权,(区别于分布式的对称加密);前端使用拦截器判断令牌是否过期设置白名单
-
前端获取到token之后存到哪里?为什么?
-
cookie、session、localStorage、sessionStorage的区别
-
如何实现用户权限控制?jwt如何实现?
这里分两个方面回答了,分别是前端拿到token之后进行的request拦截和response拦截,定义超时之后的处理;后端则是登录时使用密钥结合用户信息生成一串base64的token返回给前端,并且之后在请求时都需要decode这个token,并且在响应的时候加密。巴拉巴拉扯了点细节 -
为什么要使用websocket?
-
如何解决大文件上传?hash文件切片
-
项目中如何实现分页?node:limit()指定查询结果数量、skip()指定查询偏移量、sort()实现查询结果排序
-
为什么要使用vite?在打包的时候进行了什么优化?自己的项目里做了哪些分包操作(说一下具体命令
-
讲一下项目里识别富文本转word的实现逻辑?对于特殊标签的处理?
蔚来一面:
- POST和GET的区别
- 说一下flex布局
- 手写一个内容超出一定长度就显示省略号的块
- map和forEach分别用map和forEach写交际和并集
- 请用你知道的方法实现数组去重
- 一般什么情况下会使用Set?
- 说一下event loop,宏任务微任务有哪些
- promise的代码输出题
- 说一下重绘和回流
- 说一下vue3和vue2的响应式原理
- 手写一个递归实现的深拷贝
蔚来二面:
- 说一下vue23的响应式?vue2的$set有用过吗?一般什么时候用
- 有几种方法判断一个数据类型是null?
- 闭包的应用场景,项目中使用闭包的场景,扯到了防抖的实现。防抖定时器扯到了定时器是否准时(用事件循环解释延时)