在校前端「面试题总结」长更

542 阅读12分钟
  • 用这篇文章来记录一下近期的面试题目吧。
  • 面了好多家,有小厂有中厂有大厂。

没面完的

百度服务体验技术部

一面(12.9)

  1. v-if v-for 为啥不能一起用
  2. vue 响应式原理
  3. HTTP2 优点
  4. 多路复用解决了什么问题
  5. Vue 实现原理「问到了源码层面」
  6. 手写深拷贝
  7. 深浅拷贝区别
  8. JSON.stringify 的缺点
  9. Vue2 diff
  10. Vue2 和 Vue3 的区别
  11. 手写匹配括号
  12. 浏览器中宏任务微任务
  13. Node中宏任务微任务
  14. 首屏优化方式
  15. Webpack实现原理
  16. Webpack Plugin
  17. flex: 1 的含义

大致就是问了这么些东西(和面试官聊的还挺开心的),不过面试官全程没开摄像头。
10min 约二面

后面因为接了蔚来 offer 就拒了二面。

面完了没 Offer 的

小红书电商技术面经

一面(30min)「11.25」

正常自我介绍

  1. 说说原型原型链吧

边说面试官边点头~
说完说你这边掌握还可以啊

  1. 你在学校有没有学其他语言啊

说了 Python

  1. 你觉得 Python 和 JS 有啥区别啊,这个超纲了,没答出来也不要紧

我直接说 JS 没有真正的 Class,ES6 的 Class 不过是语法糖罢了,正准备继续找点东西说。
他直接打断了,说就是想听你说这个,不用说了,我们继续。

  1. 说说 HTTPS 对称加密和非对称加密吧。

这里对称/非对称不是很清楚,就有点问题。
不过面试官全场微笑,问题不大

  1. 聊聊项目吧

我把我项目详细介绍了一下。
我说我项目定位用了 soucemap,我对这个原理也有所了解「星星眼」
面试官乐,好,那你了解你就说说 soucemap 原理吧。
我直接开始吟唱~
然后扯了一下这玩意和 Redis 很像,讲了一下自己博客性能优化的过程

  1. 反问:部门职能,hc还有没有?
  • 小红书很快,10min 约二面,加了微信,下周一二面。

二面(40min)「11.28」

  1. 简单介绍一下你的项目吧。

这里我详细说了一下前端监控系统这个项目。

  1. 应该要有通用的流程。
  2. SDK 上报是有性能的指标,有些冗余的,不仅仅是能力的实现,还有性能的问题。
  3. 发送机制是咋样的,实时发送可能不太好,需要使用一个 queue 。
  4. 白屏的情况怎么处理。

从 DOM 结构来进行考虑的。

  1. 造成白屏的场景有哪些
    1. 太慢了
    2. JS 侧出线阻塞
    3. Crash 也可能出现 「兼容性」
    4. 兼容性未拉取下来。
  2. JS 直接挂掉了,并没有在 mounted 启动了,代码有问题(

稳定性的 SDK 要和工程代码解耦。

  1. 性能判断时机

这个检测时机我也不是特别清楚。

  1. UNI-APP
  1. 一码多端的方案
  2. H5 的分辨率问题「高清屏方案,不同的属性有不同的」「多投的问题」
  3. 有没有遇到什么坑点
  4. 兼容性问题「」
  5. 微信小程序进行分包/APP里面也有所不一样。
  6. 小程序的端框架和 Hybrid 框应用的核心区别
  1. 二次 Axios 封装是咋封装的。
    1. 基础的一些配置
  2. 做一道代码题目

将 “驼峰命名法” 转化成下划线切割。

  • 应该是挂了, hr 说最晚明天早上有消息

字节飞书低代码

一面面经 (55min) 「10.21」

  1. 介绍项目的 Axios TS 类型封装 ☑️
  2. 常见的 HTTP 的 method ☑️
  3. get和post有什么区别 ☑️
  • Get 请求记录
  1. options方法一般用在哪里? ❌ 不够全面

OPTIONS 是除了 GET 和 POST 之外的其中一种 HTTP 请求方法

OPTIONS 方法是用于请求获得由 Request-URI 标识的资源在 请求/响应 的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源之前,决定对该资源采取何种必要措施,或者了解服务器的性能。该请求方法不能缓存。

OPTIONS 请求方法的主要用途有两个

  • 获取服务器所支持的所有 HTTP 请求方法
  • 用来检查访问权限。例如:在进行 CORS 跨域资源共享时,对于复杂请求,就是使用 OPTIONS 方法发送嗅探请求,以判断是否有对指定资源的访问权限,
  1. HTTP 协议中常见的请求头和响应头 ❌ 基本没答出来

关于常用的http请求头以及响应头详解

  1. HTTP 请求头中可以传输二进制数据吗?

HTTP 1.1 可以传输二进制数据吗?

  1. 二进制数据放在 Body 中有哪些传输方法 ❌ 「相当于上传文件」

神三元

  1. HTTP 协议传输层的协议是啥 ☑️
  2. HTTP 用的是哪个协议 ☑️
  3. TCP 是如何实现可靠传输的 ❌

# 原来 TCP 为了保证可靠传输做了这么多

  1. HTTP状态码 ☑️
  2. 通过下标来访问数据元素来访问数组的时间复杂度是多少?通过下标来访问对象的时间复杂度时间复杂度? ☑️
  3. flex 中 flex: 0 1 auto 表示什么意思? ☑️
  4. 请问什么是跨域,跨域请求资源有哪几种方式?❌
  • CORS 具体传输啥 ❌ ajax method 以及其中携带了哪些信息

# 面试官问我CORS跨域,我直接一套操作斩杀!

  • nginx 是反向代理
  1. 最早项目使用 Vue3 后面的项目使用 Vue2 是为什么呢?
  2. Vue 的声明周期方法有哪些,一般在哪个声明周期里发送请求。☑️
  3. Vue框架中,组件是如何通信的。 ☑️
  4. 多层嵌套使用哪种方式。 ☑️
  5. 做题,反转子串 ☑️
let str = "www.ryker.com"
let ansStr = "com.ryker.www"

// 1. 使用 split() 然后调用 reverse
// 2. 不调用 reverse 咋办
  1. 实现一个 Promise.all ☑️
  2. 到岗时间
  3. 你做前端监控系统的初衷是什么?

二面面经 (65min)「10.25」

  1. 在你学习,或者项目中有没有觉得比较有挑战的点。
  1. 我们的项目怎么定位那个position
  2. sourcemap的原理有了解过嘛
  3. 错误的细节有规范嘛,比如我try|catch掉了
  • 这里是说可以定义一些规范来处理,写一些自定义的方式
  1. TS 中 pick 咋实现
  1. 小程序多端适配是咋做的
  2. 设计一个三秒的Promise,如果我超时了,直接丢弃咋做到?
  3. 如何避免xss/csrf?粗略不行,要极其细节该如何检索
  4. Vue 中 diff 原理
  5. router的实现原理
  6. 三数之和
  7. 实现一个函数,将请求分批发送出去

三面 (50min)「10.28」

  • 简单说一下你的项目
    • 浏览器崩溃时怎么处理
  • options「第一面没答好」
  • 写了一道 dfs 「20min」

字节内容安全

一面(40min)11.24

一面面试官人特别好,聊的氛围很不错。

上来自我介绍完了就让说点基础知识。

  1. 说说 JS 的数据类型吧。

我直接开始吟唱,然后说完之后他说了一句:“嗯,非常全面。”

  1. 说说你知道的 ES6 的相关知识

这里我答的不是很多,就是基础的解构赋值,扩展运算符,新的 API,var let const

  1. 你知道 async/await 嘛

你说这个我就不困了,我直接说这个是 generator 的语法糖,然后他说了一下让我实现,好像又后悔了,算了算了你别实现了。

我立刻接过来说我可以手写的,然后还是没让我手写「哭」,就说了一下大概思路。

  1. 那你知道 const 让对象不变有什么好处嘛。

我答的性能相关,面试官没啥特别明确的反应。 答完这么一遛之后他就说看你之前面评这里确实很扎实。

问下 CSS 吧

  1. 怪异盒模型和标准盒模型

这个直接一梭哈,没啥好说的。

  1. 垂直居中,有多少种说多少种。

印象里是说了五种。「嗯,很全面啊」

  1. GET 和 POST 的区别

开始吟唱~

  1. URL 输入的过程
1.  DNS 解析过程
2.  HTTPS 加密过程
3.  TCP 三次握手过程

面试官让我尽量详细,我还准备吟唱两个缓存(,他说你掌握的很全面,就又继续了。

  1. 让我简单说了一下怎么实现一个小 Vue

我就把基本的响应式说了一下

  1. defineProperty/Proxy 区别

吟唱~

你基础知识还蛮扎实的,做个题吧,想做啥样的?

简单点吧。

  1. 《反转链表》

他真的,我哭死。

面到这里也就20多min吧。

面试官:

“虽然这样是不对的”

“但是你过了”

然后给我花了十几分钟讲了部门情况,做啥的。

聊的很开心,约的 11.30 二面。

二面(40min)11.30

二面巨折磨((((

  1. utf-8 / utf-16 / utf-32 ❌
  2. 网页上字体有些加载不出来 ❌

面试官问:你是不是有些紧张,乐,我就是不会啊。

我答的不全反正

  1. 用过webpack嘛 ☑️

我知道咋做优化,但是我确实不知道原理

  1. webpack 原理是啥 ❌
  2. webpack 的缺点是啥
1.  预加载
2.  node_modules
  1. 网页的详细渲染 不会 ❌

我只知道 DOM 和 CSSOM 来构建 然后 renderer rendering 渲染具体步骤 这确实不知道 我直接寄

  1. Vue 的虚拟 DOM ☑️

这个很好说,不过不知道它想法是啥(

  1. Vue 双向绑定原理 ☑️
  2. 通过什么 API 来做的 ☑️
  3. Vue 里面子组件向父组件通信 ☑️
  4. HTTPS / HTTP 的区别 ☑️
  5. HTTPS 对称加密和非对称加密过程 ☑️
  6. HTTP 502 服务端 ☑️
  7. 抛硬币 ❌
  8. DFS ☑️
  • 虽然答的不是很好,但是面试官还是给咱过了,等 12.9 三面

三面(50min)12.9

  1. 首先问了我们的课程问题,大二实习是不是太早了。
  1. 和面试官扯了一下秋招真tm难,学校课有啥好上的。
  1. 首先问了一下项目
1.  浏览器崩溃的边缘案例
2.  浏览器进程/线程,进程间通信「这里我还和面试官斗智斗勇了巨久」
3.  前端进程通信的 API
4.  输入 url ,不要背八股,说些关键点
5.  内容更新和页面变化联系起来
6.  死锁「寄!」
  1. JS 编写完到发布到线上的过程。
1.  我直接答了 webpack 原理,说自己写过 mini_Webpack
2.  然后 meta、link 「这里不着痕迹的夸了一下头条,说它们这里做的优化很不错」
3.  多个文件放一起为啥好。
  1. 白屏优化
 1.  各种吹
  1. 压缩到端上解压变大
 1.  只做压缩会不会带来问题
  1. 网络协议(TCP/IP)
1.  为啥 TCP 可靠,不会,上次字节一面也不会
2.  用了滑动窗口,是个策略
  1. 一道 DFS(大概写出来了,有点没调出来)
  • 面完一周无消息。

发 Offer 的

智慧芽

一面

  1. 说说项目浏览器崩溃怎么处理的
  2. 说说后台管理系统
  3. 说说 Vue 虚拟 DOM
  4. 说说 Vue 生命周期
  5. 说说 watch 和 computed 区别
  6. 说说 watch 怎么监听数组
  7. 说说 flex
  8. 如何实现垂直居中

反问:钱多少,做啥

智慧芽二面(总监聊天)

  1. 前端学习中有挑战的事情
  2. 问了下 http 状态码

还扯了不少七的八的

默安科技

一面(20min左右)

  1. ts泛型
  2. express 如何设置 http2
  3. 字符串翻转必须使用递归
  4. @input.sync 啥意思
  5. http2和http1.1的优劣
  6. 项目发布之后咋优化
  7. gitflow工作流具体咋搞
  8. 子组件给父组件传值

二面(16min)

  1. 说下常见的排序算法
  2. 说下 HTTP 状态码
  3. 说下 浏览器常见存储方式
  4. 为啥想做前端
  5. 说下浏览器同源策略
  6. cookie 的安全问题
  7. 二叉树的层序遍历

上海高仙

一面(50min)

  1. 说说 uni-app 的优缺点
  2. 说说 项目的优化 x 2
  3. 说说事件循环机制

setTimeout 回调

  1. 说说继承方式,比较一下
  2. HTTP 和 HTTPS 的区别
  3. 说说 HTTP 的缓存

面试官迟到了,本来很不爽的,结果上来态度好好,然后聊完技术之后聊了20多分种他们在做的业务,挺契合的。

上海高仙二面(总监面)

  1. 说下项目
  2. 常见设计模式
  3. HTTPS/HTTP 加密
  4. 聊天

反问:公司配啥电脑,待遇咋样。

蔚来

一面 (1h15min

项目「50min」

  1. FP/FCP 分别指的是啥
  2. uni-app 多端适配原理「纠缠了很久」

算法「10min」

  1. 四个老鼠,16瓶奶,一瓶有毒,最少次数。

基础「15min」

  1. JS数据类型
  2. 检测对象的方法

面试官听的很认真,问的很难,应该是这个部门很难,反正我面麻了。

面完让我学了 react 再来面

二面(40min)

话说上回,leader 加了我 vx 然后又约面了,面完就告诉我过了。

leader 主要是问我学了啥,我把自己看的一些东西说了一下

  1. 常见 React Hooks
  2. useEffect/useLayoutEffect 区别
  3. React.fiber
  4. useRef()、useContext()
  5. Redux
  6. 事件循环
  7. await 后面出现了错误下面还能执行吗?
  8. async/await
  9. 宏任务微任务产生原因
  10. 然后基本聊了一下

聊完就说你过了,等 hr 联系。

希望面经可以帮助到大家 ~