「前端」蔚来一面面经

加粗部分为AI生成,用于补充,请自行辨别真实性

上来先写两道题(😅,最近怎么老碰到这种面试)

  1. 两两交换链表中的节点
  2. 二叉树的层序遍历

写完了之后,开始问一些问题

  1. React和Vue有什么区别?
  2. watch和computed有什么区别?
    1. 前者主要用于管理副作用,后者用于管理数据依赖更新
  3. 看过watch和computed源码吗
    1. 聊了一下响应式的核心实现
  4. 这个响应式的实现遵循了哪些设计模式?
    1. 就答出来个发布-订阅模式
    2. 还有观察者模式、装饰器模式
  5. 讲讲 Diff 算法
    1. 分别从Vue 的 Block/静态提升/更新标记等和React 的 Fiber 架构聊了一下
  6. key 的作用,更新key去清空组件数据会有什么问题?
    1. 给diff算法辨别谁是谁
    2. 更新key会导致组件的销毁和重建,带来额外的性能开销
  7. 如果说一个组件造成了很大的内存开销,你如何定位?
    1. 只讲了可以用开发者工具的Memory标签,具体的没有实践过
  8. React和Vue的生命周期
  9. 获取图表数据应该放在哪个生命周期上做?
    1. onMounted
  10. 如果有一些数据需要页面挂载之前处理,在哪里做?
    1. onCreated
  11. TailwindCSS解决了什么问题?
    1. 不用想类名,读起来写起来比较清晰
  12. 有什么缺点?
    1. 可能鼓励开发者写超多类,反而降低可读性
  13. SaSS等预处理器,主要解决什么问题?
    1. 所有的预处理器无非两个方向:让开发者用起来更好用(比如嵌套样式),实际应用的时候性能更好(比如删除未使用的类/打包优化等)
  14. 在打包体积可能比较大的情况下,如何做加载速度优化?
    1. 考虑从两个方面去解决,一个是本身体积大,那就需要比较长的下载时间,一个是执行时间长,可能会导致前端卡顿;
    2. 体积方面
      1. 通过TreeShaking等特性降低打包体积
      2. 通过CDN加速下载
      3. 雪碧图等避免频繁的资源请求
    3. 执行时间方面
      1. 通过defer和async标签延迟js执行,通过异步方式减少阻塞(比如React和Fiber和JS的Promise)
  15. 聊了一下简历中的一个项目,有登录页,登陆的整个过程是什么样的?
    1. 拿到账号和密码之后对密码进行单向加密,然后把他们俩通过接口发给后端去校验,再通过后端返回的状态码判断校验结果,错误就发一个toast展示错误信息;成功就跳转首页
  16. token的更新机制
  17. 用 cookie 携带 token 带来的 CSRF 问题及如何预防
  18. 另一个项目里有很多视频,如何优化视频加载?
    1. CDN
    2. 流媒体技术,分段提供
    3. 更低的码率,更新的压缩算法,降低视频体积
#蔚来##秋招##前端#
全部评论
第17个你确定是token的csrf问题不是cookie的?
点赞 回复 分享
发布于 09-03 09:11 浙江

相关推荐

不愿透露姓名的神秘牛友
11-19 10:58
点赞 评论 收藏
分享
8 25 评论
分享
牛客网
牛客企业服务