# 一、前言

首先,面试官很和蔼,甚至我感觉和蔼过头了 —— 他戴着牙套,长得很像我的有个高中同学,讲话也软绵绵的,不过听得出来是非常有实力的。

其次,面试环境非常嘈杂,各种噪音不绝于耳,怀疑是在一个办公室里面面试的,我甚至有时候听不清面试官在讲什么。

最后,面试官感觉是优点刻意的想跳过我和他的交流过程,想尽快的让我进行八股吟唱。这点稍微有点令人忍俊不禁。

不过总之,还是有收获一些东西的。

# 二、题目列表

  1. 自我介绍。

  2. 从我的简历上面自己选了一个项目让我讲,并问了团队规模,Github 上怎么去协作一个项目。

  3. 你的这个专业为什么会让你接触到前端这个方向?你是怎么看待前端这个岗位的呢?

  4. GET 和 POST 请求有什么区别?POST 和 PUT 请求有什么区别?

  5. 说一下前端存储,LocalStorage、SessionStorage、Cookie 三者的区别和特点。LocalStorage 在不同的 url 之间就不能够共享了吗?

    LocalStorage 在 同源 之间是共享的。

  6. 说一下跨域。

  7. 说一下节流和防抖,并且描述一下这两者分别在什么情况下使用?

  8. 说一下 CSS 中的选择器分别有哪些?这些选择器的优先级又是如何?

  9. 怎么实现一个水平垂直居中。

  10. 说一下 flex 布局中的 justify-content 属性,它只用于水平居中吗?

  11. opacity: 0 和 display: none 两者有什么区别?

  12. v-if 和 v-show 两者有什么区别?

  13. opacity 从 0 到 1 触发的是回流还是重绘?

  14. 说一下事件委托。

  15. 有用过 React 吗?

  16. Promise.all 和 Promise.race 两者有什么区别?有了解过 Promise.allSettled 吗?

  17. 代码题:实现一个函数,传入一个 list 数组,list 内部是一个 {name: string; value: number} 类型的 item,需要返回一个以 name 为键、值为 value 数组的对象。

  18. 代码题:实现一个函数,传入 10 个 machine 对象,每个对象中都有一个 update 的异步方法,这个函数中每次智能同时执行三个 machine 的这个方法,其他的方法需要等待三个 update 进行完后方可开始执行。

  19. 反问阶段。

# 三、后记

总体来说面试体验很不错,如果我在回答的过程中出现了回答错误,面试官是会直接来纠正我的错误并指出正确的回答,让我觉得收获比较大。

算法题第一题比较简单,第二题有点吃力,不过最终还是写出来了。

最后一面是顺利过了,不过因为已经答应了蔚来的 offer,因此二面准备不打算参与了。