- 用这篇文章来记录一下近期的面试题目吧。
- 面了好多家,有小厂有中厂有大厂。
没面完的
百度服务体验技术部
一面(12.9)
- v-if v-for 为啥不能一起用
- vue 响应式原理
- HTTP2 优点
- 多路复用解决了什么问题
- Vue 实现原理「问到了源码层面」
- 手写深拷贝
- 深浅拷贝区别
- JSON.stringify 的缺点
- Vue2 diff
- Vue2 和 Vue3 的区别
- 手写匹配括号
- 浏览器中宏任务微任务
- Node中宏任务微任务
- 首屏优化方式
- Webpack实现原理
- Webpack Plugin
- flex: 1 的含义
大致就是问了这么些东西(和面试官聊的还挺开心的),不过面试官全程没开摄像头。
10min 约二面
后面因为接了蔚来 offer 就拒了二面。
面完了没 Offer 的
小红书电商技术面经
一面(30min)「11.25」
正常自我介绍
- 说说原型原型链吧
边说面试官边点头~
说完说你这边掌握还可以啊
- 你在学校有没有学其他语言啊
说了 Python
- 你觉得 Python 和 JS 有啥区别啊,这个超纲了,没答出来也不要紧
我直接说 JS 没有真正的 Class,ES6 的 Class 不过是语法糖罢了,正准备继续找点东西说。
他直接打断了,说就是想听你说这个,不用说了,我们继续。
- 说说 HTTPS 对称加密和非对称加密吧。
这里对称/非对称不是很清楚,就有点问题。
不过面试官全场微笑,问题不大
- 聊聊项目吧
我把我项目详细介绍了一下。
我说我项目定位用了 soucemap,我对这个原理也有所了解「星星眼」
面试官乐,好,那你了解你就说说 soucemap 原理吧。
我直接开始吟唱~
然后扯了一下这玩意和 Redis 很像,讲了一下自己博客性能优化的过程
- 反问:部门职能,hc还有没有?
- 小红书很快,10min 约二面,加了微信,下周一二面。
二面(40min)「11.28」
- 简单介绍一下你的项目吧。
这里我详细说了一下前端监控系统这个项目。
- 应该要有通用的流程。
- SDK 上报是有性能的指标,有些冗余的,不仅仅是能力的实现,还有性能的问题。
- 发送机制是咋样的,实时发送可能不太好,需要使用一个 queue 。
- 白屏的情况怎么处理。
从 DOM 结构来进行考虑的。
- 造成白屏的场景有哪些
- 太慢了
- JS 侧出线阻塞
- Crash 也可能出现 「兼容性」
- 兼容性未拉取下来。
- JS 直接挂掉了,并没有在 mounted 启动了,代码有问题(
稳定性的 SDK 要和工程代码解耦。
- 性能判断时机
这个检测时机我也不是特别清楚。
- UNI-APP
- 一码多端的方案
- H5 的分辨率问题「高清屏方案,不同的属性有不同的」「多投的问题」
- 有没有遇到什么坑点
- 兼容性问题「」
- 微信小程序进行分包/APP里面也有所不一样。
- 小程序的端框架和 Hybrid 框应用的核心区别
- 二次 Axios 封装是咋封装的。
- 基础的一些配置
- 做一道代码题目
将 “驼峰命名法” 转化成下划线切割。
- 应该是挂了, hr 说最晚明天早上有消息
字节飞书低代码
一面面经 (55min) 「10.21」
- 介绍项目的 Axios TS 类型封装 ☑️
- 常见的 HTTP 的 method ☑️
- get和post有什么区别 ☑️
- Get 请求记录
- options方法一般用在哪里? ❌ 不够全面
OPTIONS 是除了 GET 和 POST 之外的其中一种 HTTP 请求方法
OPTIONS 方法是用于请求获得由 Request-URI 标识的资源在 请求/响应 的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源之前,决定对该资源采取何种必要措施,或者了解服务器的性能。该请求方法不能缓存。
OPTIONS 请求方法的主要用途有两个
- 获取服务器所支持的所有 HTTP 请求方法
- 用来检查访问权限。例如:在进行 CORS 跨域资源共享时,对于复杂请求,就是使用 OPTIONS 方法发送嗅探请求,以判断是否有对指定资源的访问权限,
- HTTP 协议中常见的请求头和响应头 ❌ 基本没答出来
- HTTP 请求头中可以传输二进制数据吗?
HTTP 1.1 可以传输二进制数据吗?
- 二进制数据放在 Body 中有哪些传输方法 ❌ 「相当于上传文件」
- HTTP 协议传输层的协议是啥 ☑️
- HTTP 用的是哪个协议 ☑️
- TCP 是如何实现可靠传输的 ❌
- HTTP状态码 ☑️
- 通过下标来访问数据元素来访问数组的时间复杂度是多少?通过下标来访问对象的时间复杂度时间复杂度? ☑️
- flex 中 flex: 0 1 auto 表示什么意思? ☑️
- 请问什么是跨域,跨域请求资源有哪几种方式?❌
- CORS 具体传输啥 ❌ ajax method 以及其中携带了哪些信息
- nginx 是反向代理
- 最早项目使用 Vue3 后面的项目使用 Vue2 是为什么呢?
- Vue 的声明周期方法有哪些,一般在哪个声明周期里发送请求。☑️
- Vue框架中,组件是如何通信的。 ☑️
- 多层嵌套使用哪种方式。 ☑️
- 做题,反转子串 ☑️
let str = "www.ryker.com"
let ansStr = "com.ryker.www"
// 1. 使用 split() 然后调用 reverse
// 2. 不调用 reverse 咋办
- 实现一个 Promise.all ☑️
- 到岗时间
- 你做前端监控系统的初衷是什么?
二面面经 (65min)「10.25」
- 在你学习,或者项目中有没有觉得比较有挑战的点。
- 我们的项目怎么定位那个
position sourcemap的原理有了解过嘛- 错误的细节有规范嘛,比如我
try|catch掉了
- 这里是说可以定义一些规范来处理,写一些自定义的方式
- TS 中 pick 咋实现
- 小程序多端适配是咋做的
- 设计一个三秒的Promise,如果我超时了,直接丢弃咋做到?
- 如何避免xss/csrf?粗略不行,要极其细节该如何检索
- Vue 中 diff 原理
- router的实现原理
- 三数之和
- 实现一个函数,将请求分批发送出去
三面 (50min)「10.28」
- 简单说一下你的项目
-
- 浏览器崩溃时怎么处理
- options「第一面没答好」
- 写了一道 dfs 「20min」
字节内容安全
一面(40min)11.24
一面面试官人特别好,聊的氛围很不错。
上来自我介绍完了就让说点基础知识。
- 说说 JS 的数据类型吧。
我直接开始吟唱,然后说完之后他说了一句:“嗯,非常全面。”
- 说说你知道的 ES6 的相关知识
这里我答的不是很多,就是基础的解构赋值,扩展运算符,新的 API,var let const
- 你知道 async/await 嘛
你说这个我就不困了,我直接说这个是 generator 的语法糖,然后他说了一下让我实现,好像又后悔了,算了算了你别实现了。
我立刻接过来说我可以手写的,然后还是没让我手写「哭」,就说了一下大概思路。
- 那你知道 const 让对象不变有什么好处嘛。
我答的性能相关,面试官没啥特别明确的反应。 答完这么一遛之后他就说看你之前面评这里确实很扎实。
问下 CSS 吧
- 怪异盒模型和标准盒模型
这个直接一梭哈,没啥好说的。
- 垂直居中,有多少种说多少种。
印象里是说了五种。「嗯,很全面啊」
- GET 和 POST 的区别
开始吟唱~
- URL 输入的过程
1. DNS 解析过程
2. HTTPS 加密过程
3. TCP 三次握手过程
面试官让我尽量详细,我还准备吟唱两个缓存(,他说你掌握的很全面,就又继续了。
- 让我简单说了一下怎么实现一个小 Vue
我就把基本的响应式说了一下
- defineProperty/Proxy 区别
吟唱~
你基础知识还蛮扎实的,做个题吧,想做啥样的?
简单点吧。
- 《反转链表》
他真的,我哭死。
面到这里也就20多min吧。
面试官:
“虽然这样是不对的”
“但是你过了”
然后给我花了十几分钟讲了部门情况,做啥的。
聊的很开心,约的 11.30 二面。
二面(40min)11.30
二面巨折磨((((
- utf-8 / utf-16 / utf-32 ❌
- 网页上字体有些加载不出来 ❌
面试官问:你是不是有些紧张,乐,我就是不会啊。
我答的不全反正
- 用过webpack嘛 ☑️
我知道咋做优化,但是我确实不知道原理
- webpack 原理是啥 ❌
- webpack 的缺点是啥
1. 预加载
2. node_modules
- 网页的详细渲染 不会 ❌
我只知道 DOM 和 CSSOM 来构建 然后 renderer rendering 渲染具体步骤 这确实不知道 我直接寄
- Vue 的虚拟 DOM ☑️
这个很好说,不过不知道它想法是啥(
- Vue 双向绑定原理 ☑️
- 通过什么 API 来做的 ☑️
- Vue 里面子组件向父组件通信 ☑️
- HTTPS / HTTP 的区别 ☑️
- HTTPS 对称加密和非对称加密过程 ☑️
- HTTP 502 服务端 ☑️
- 抛硬币 ❌
- DFS ☑️
- 虽然答的不是很好,但是面试官还是给咱过了,等 12.9 三面
三面(50min)12.9
- 首先问了我们的课程问题,大二实习是不是太早了。
- 和面试官扯了一下秋招真tm难,学校课有啥好上的。
- 首先问了一下项目
1. 浏览器崩溃的边缘案例
2. 浏览器进程/线程,进程间通信「这里我还和面试官斗智斗勇了巨久」
3. 前端进程通信的 API
4. 输入 url ,不要背八股,说些关键点
5. 内容更新和页面变化联系起来
6. 死锁「寄!」
- JS 编写完到发布到线上的过程。
1. 我直接答了 webpack 原理,说自己写过 mini_Webpack
2. 然后 meta、link 「这里不着痕迹的夸了一下头条,说它们这里做的优化很不错」
3. 多个文件放一起为啥好。
- 白屏优化
1. 各种吹
- 压缩到端上解压变大
1. 只做压缩会不会带来问题
- 网络协议(TCP/IP)
1. 为啥 TCP 可靠,不会,上次字节一面也不会
2. 用了滑动窗口,是个策略
- 一道 DFS(大概写出来了,有点没调出来)
- 面完一周无消息。
发 Offer 的
智慧芽
一面
- 说说项目浏览器崩溃怎么处理的
- 说说后台管理系统
- 说说 Vue 虚拟 DOM
- 说说 Vue 生命周期
- 说说 watch 和 computed 区别
- 说说 watch 怎么监听数组
- 说说 flex
- 如何实现垂直居中
反问:钱多少,做啥
智慧芽二面(总监聊天)
- 前端学习中有挑战的事情
- 问了下 http 状态码
还扯了不少七的八的
默安科技
一面(20min左右)
- ts泛型
- express 如何设置 http2
- 字符串翻转必须使用递归
- @input.sync 啥意思
- http2和http1.1的优劣
- 项目发布之后咋优化
- gitflow工作流具体咋搞
- 子组件给父组件传值
二面(16min)
- 说下常见的排序算法
- 说下 HTTP 状态码
- 说下 浏览器常见存储方式
- 为啥想做前端
- 说下浏览器同源策略
- cookie 的安全问题
- 二叉树的层序遍历
上海高仙
一面(50min)
- 说说 uni-app 的优缺点
- 说说 项目的优化 x 2
- 说说事件循环机制
setTimeout 回调
- 说说继承方式,比较一下
- HTTP 和 HTTPS 的区别
- 说说 HTTP 的缓存
面试官迟到了,本来很不爽的,结果上来态度好好,然后聊完技术之后聊了20多分种他们在做的业务,挺契合的。
上海高仙二面(总监面)
- 说下项目
- 常见设计模式
- HTTPS/HTTP 加密
- 聊天
反问:公司配啥电脑,待遇咋样。
蔚来
一面 (1h15min)
项目「50min」
- FP/FCP 分别指的是啥
- uni-app 多端适配原理「纠缠了很久」
算法「10min」
- 四个老鼠,16瓶奶,一瓶有毒,最少次数。
基础「15min」
- JS数据类型
- 检测对象的方法
面试官听的很认真,问的很难,应该是这个部门很难,反正我面麻了。
面完让我学了 react 再来面
二面(40min)
话说上回,leader 加了我 vx 然后又约面了,面完就告诉我过了。
leader 主要是问我学了啥,我把自己看的一些东西说了一下
- 常见 React Hooks
- useEffect/useLayoutEffect 区别
- React.fiber
- useRef()、useContext()
- Redux
- 事件循环
- await 后面出现了错误下面还能执行吗?
- async/await
- 宏任务微任务产生原因
- 然后基本聊了一下
聊完就说你过了,等 hr 联系。
希望面经可以帮助到大家 ~