04-面经
1. 网易前端实习
1. 一面
- CSS 怎么解析选择器
- V8 解析执行 JavaScript 代码过程
- script 标签
- 子元素里面绝对定位,设置宽高,能否撑起父元素
- 怎么形成 BFC
- ES6 新特性
- ES6 新增什么作用域,之前有什么作用域
- 类型转换
- 代码题——立即执行函数能否访问到全局变量
- React——setState 同步异步
- React 父子组件通信
- 聊实习经历
- 反问
2. 二面
- 自我介绍
- 算法:求 n 个 2-32 的不重复的随机数算法:一个数组打乱顺序,要求不在原本的位置,时间复杂度 左侧固定,右侧自适应
- 本地存储
- 不同网站之间的存储可以互读吗
- 满足什么条件算跨域
- 如何解决跨域
- CDN 原理
- http2.0
- 反问
2. 华顺信安前端
1. 一面
- TCP/UDP 在哪一层,二者区别,应用场景
- 浏览器缓存机制
- html 解析过程
- 看代码写输出结果:原型链
function A() {
this.x = 'hello'
}
A.prototype.x = 'world'
const a = new A();
a.x = 'what'
console.log(a.x);
delete a.x;
console.log(a.x);
delete a.x;
console.log(a.x);
a.x = undefined;
console.log(a.x);
// what
// world
// world
// undefined
2. 二面
- 问项目
- 一面笔试题有没有复盘?自己打个分打多少
- 盒模型
- 有写过动画吗
- promise 是同步还是异步的?
- 用类设计promise,口述思路即可
- 堆和栈
let a = {age:1}, let b = a, b.age = 2, console.log(a)
- 写 vue2 你需要多长时间掌握
- 最近学了什么前端知识
- 博客怎么做的?平时博客上面写什么东西
- git 图形化用的什么插件,比输命令好在那里
- 为什么学校开 java 你不选后端,跑来选前端(兴趣)
- 未来职业规划
3. 字节前端实习
1. 一面
- axios 封装
- ts 类型体操
- unknown 和 any 区别
- interface 和 type 区别
- 有哪些方法告诉编译器这个 unknown 一定是某个类型
- 讲讲类型守卫、联合类型
- 简单写个函数类型 传入 string 返回 number 传入 number 返回 string
- 项目相关
- 讲一讲 jwt 如何进行鉴权
- 如果要主动过期 token 怎么办
- 简单/复杂请求
- token 能放在哪些地方 对应的缺点
- token 放在 url 里行不行 为什么
- options 预检
- 为什么选 nest 怎么做技术选型的 有了解过 eggjs 之类的东西吗
- 知道哪些状态管理库 用过 zustand 吗
- 讲讲浏览器事件循环
- eventloop 讲输出
- 了解 node 事件循环吗
- 了解 v8 吗
- 手写,归并排序
- 手写,线程池
- 手写,sleep
2. 二面
- 介绍一下为什么选择前端和学习方法
- vue2 和 vue3 的区别
- 了解 vue 的原理吗
- 了解 node 的异步xxx吗
- 你觉得 node 的使用场景是什么
- 说一说 useState 和 Hooks 的执行顺序
- 组件间通信方式
- 组件的渲染 子组件和父组件的影响关系
- MySQL 和 MongoDB 区别
- 说输出顺序 变量提升、作用域相关
- 手写,字符串格式化
- 手写,获取页面节点数量
- 手写,tooltip 组件
html + css
- 手写,全排列
- 三种隐藏元素方式区别
- 了解哪些设计模式 举例
- jQuery 是什么设计模式
- 浏览器安全
- 如何防范 CSRF
- 301 和 302 状态码
- router 的种类
3. 三面
- 项目中最有挑战的事
- 技术难点
- 手写 字符串转对象
4. 百度一面
var a = []; a.push()、a.pop()
请说明在 js 中的意义- promise 有几种状态,可以重复改变吗?
- 输出结果,为什么?
const obj3 = {a: 1};
const obj4 = {b: 2};
console.log(obj3 == obj4); // false
console.log(obj3 === obj4); // false
// 结果 false, false
- 聊聊你对语义化的理解
- leetcode 原题编辑距离
给你两个单词 word1 和 word2,请返回将 word1 转换成 word2 所使用的最少操作数。可以对一个单词进行如下三种操作:
- 插入一个字符
- 删除一个字符
- 替换一个字符
- 如何用 AI 工具,提升开发效率
- vite 为什么比 webpack 快?
5. 美团暑期实习
- 自我介绍一下,深挖简历,深挖工作经历,深挖项目经历
- 如果你的同事出现工作上情绪的问题,你如何调节?
- http 的 GET 和 POST 请求有什么区别?
- GET 请求和 POST 请求的参数传递有什么区别?如果想用 GET 请求提交数据有什么问题?
- 你之前的项目是怎么做线上发布的?
- 有尝试不用 vue-cli 搭建过项目吗?
- 你是怎么理解软件研发的生命周期的?
- 你是怎么理解 RESTfuI 的,它的优缺点是什么?
- 图片懒加载怎么做得?有哪些常见方案?
- 说说你的理解 U 组件和业务组件有什么区别?
- 有没有了解 Webpack 的 loader 和 plugin,它们是怎么实现的?
- 如果让你实现一个 loader 你怎么做?
- 强缓存和协商缓存什么区别?如何设置?
- vue 的数据观测原理
- 手写代码,实现图片加载失败后,显示另一个地址内容
- 手写-个 Promise 的并发控制
- 有没有其他同学想来我们部门的?
- 你怎么看待美团的?
6. 中通秋招二面
- 自我介绍
- 做过得项目中有哪些是值得讲讲的,列举下详细聊聊
- 你聊到做地理信息项目中的图层那块,大数量标签的渲染性能问题是如何考量的?
- 在项目中是做小组长吗?
- 刚才说项目中用原生 JS 多一点,哪个框架用得多一点?看你的项目经验都是 Vue2,Vue3 有了解过吗?用的多吗?
- 之前项目用的是 ElementUI 吧,有没有遇到 ElementUI 无法实现或者功能无法支撑的时候?有没有自己封装过一些?二次封装的也行
- 有这样一个场景,比如一个页面中需要与其中三个组件中的表单交豆,你该怎么实现?比如需要等待三个表单都验证通过了,才可以正式提交
- 如果表单的验证调用方式是异步的呢?你一般怎么做?
- 页面的布局效果(上面固定,左面固定,右面自适应),你怎么做?具体聊聊单纯从 CSS 角度
- 深浅拷贝有了解吗?再细致讲讲。自己一般实现深浅拷贝用什么方法?
- 聊一聊 JS 中的 this
- 对于宏任务和微任务有了解吗?具体讲一讲
反问问题:
- 请问如果我有机会进入咱们公司,一般是进哪个部门?或者做什么业务?
- 这个看你的意向,如果你有对公司架构和事业群了解,可以和 HR 聊,按照经验来说,一般是可以帮助你分配过去的
- 如果我想做前端的基建,可以去哪些部门?
- 你刚才说的微前端那块,公司这部分的平台基本上已经改造完了
- 可以去平台部或者架构部,这些部门能接触到你想学的基建。另外可以去技术平台部,技术平台部里面有个前端框架部
7. 掌阅秋招
- 自我介绍
- B 端、C 端都做过吧?咱们这里偏 C 端
- 之前系统的鉴权怎么做的?
- 请求中单独配置请求头的需求做过吗?
- 原生的 XmlHttpRequest 封装 Ajax 这个会做吗?说说原理
- 强缓存和协商缓存有什么区别?
- cookie、localstorage、sessionstorage 的区别?它们可以跨子域访问吗?
- 事件冒泡聊一聊,如何拦截?默认事件怎么阻止?
- 讲讲 JS 中你理解的 this
- 这段代码会发生什么,会不会报错,什么原因?(基于 Promise 封装了一个函数,函数内部递归调用)
- Vue 中异常捕获你是怎么搞的?
- 问题反问阶段
- 秋招的大概截至时间?
- 11月份吧,我们开始比较晚,刚开始2周
- 秋招生进来后是去哪个部门,做什么业务?
- 商业化平台,还有一些广告啊什么的业务平台,包括老板要看报表还要有这类平台都在咱们这里做
- 另外一部分是C端产品,包括阅读器这些也在咱们这里做
- 请问掌说和我小时候用得阅读器是同一家平台吗?
- 是的,之前和安卓厂商合作,做了很多预装那时候装机量比较高
- 请问咱们做混合开发的技术选型是怎么样的?有RN 技术栈吗
- 目前来说 RN 没有用,基于 webview 的居多(xxx说了好久)
- 有一些对体验要求比较高的产品,比如阅读器翻书这类的,都是用的原生开发技术
- 你的前端大概接触了多久?
- 秋招的大概截至时间?
8. Bilibili一面
- 自我介绍
- HTTP 请求头常见的请求头字段有哪些?
- 强缓存和协商缓存的优先级,整个流程?
- content-type 的取值有哪些?
- HTTP1.1 和 HTTP2.0 的区别有哪些?
- HTTP2.0 中,具体的头部压缩是怎么实现的?
- 时间复杂度的概念是怎么样的?如何计算时间复杂度?递归的复杂度是多少?快排的时间复杂度是怎么计算的?
- 堆排序怎么排的?
- JS中堆内存和栈内存的概念?
- 严格说 V8 中的堆栈都是模拟的,问题本身有一些钚严谨, 讲得太深影响面试官判断
- typeof 是干什么用的?
- 前端常见的设计模式有哪些?你说到的观察者模式,有哪些应用?
- 讲一下分支管理,git 命令中 merge 和 rebase 什么区别?
- 如何使用 HTTP 请求上传文件 Blob 和 File 的关系
- v-mode 和 :value 的区别?
- React 有接触过吗?那么使用 React 和传统开发的区别和流程上的差异在那里?使用这些框架有哪些好处?
- Vue 组件的生命周期?
- 移动端的布局方法?怎么做适配?EM,REM 的原理?
问题反问:
- 大概做什么业务?
- 会员相关的版权视频,相关中后台管理页面也要做
9. 大疆实习
- 自我介绍
- 之前待过两家公司吧?现在找实习考虑机会的原因是什么?
- 项目中比较有挑战性的点是什么?当时是怎么克服的?
- 做组件开发的过程中,有哪些挑战性的点?
- 听你讲有了解过 EventEmitter? 有深入了解过这个 API 吗?有没有动手手写过内部的实现?
- 国产化项目那个技术架构可以讲下吗?怎么做得技术选型?技术选型是你这边主导的吗?
- 项目中遇到了哪些优化点?怎么解决的?
- 项目中有没有遇到- -些非常难排查的 BUG?
- 项目中用到了 虚幻4 ,这个工作中你参与哪部分?
- HTTP1.1 和 HTTP2.0 追加了哪些特性?
- Vue 框架的 diff 核心能讲一下吗?
- React 大概掌握的情况怎么样?
- Vue 中路由跳转的原理是怎么样的?
- 如何解决跨域问题?
业务和实习内容?
- React 技术栈,做官网的 3D 2D 可视化展示之类的应用、管理应用、大疆内部的 ToB 业务 Vue 框架用的多,能否接受?
- 没有关系,框架都是相通的,了解了其内部的设计,上手另一个没有多大问题
- 是否可以请假,请假相对容易吗?项目特别紧急的话,要商量着来。平时学校有事情的话,可以的
10. 腾讯秋招
- 技术栈?Vue2、Vue3、TypeScript
- Vue2 中组件的通信方式
- 前端数据存储方式及其应用场景
- 受控组件和非受控组件
- 虚拟 DOM
- Javascript 数据溢出的控制方法
- 前端的网络安全?(XSS、CSRF)
- 前端性能优化?
优化回答方向:
- 项目构建(借助构建工具分析问题并落地解决)
- 浏览器调试、埋点等性能监控
- 缓存复用
- webpack 优化(代码压缩、分包)
- web worker
- SSR
- CDN
- 当时项目中最难搞定的问题
- 线上问题分析
- 适配问题
- 工程化建设(代码规范、文档规范、自动化部署)
- 技术团队的管理和划分