04-面经

1. 网易前端实习

1. 一面

  1. CSS 怎么解析选择器
  2. V8 解析执行 JavaScript 代码过程
  3. script 标签
  4. 子元素里面绝对定位,设置宽高,能否撑起父元素
  5. 怎么形成 BFC
  6. ES6 新特性
  7. ES6 新增什么作用域,之前有什么作用域
  8. 类型转换
  9. 代码题——立即执行函数能否访问到全局变量
  10. React——setState 同步异步
  11. React 父子组件通信
  12. 聊实习经历
  13. 反问

2. 二面

  1. 自我介绍
  2. 算法:求 n 个 2-32 的不重复的随机数算法:一个数组打乱顺序,要求不在原本的位置,时间复杂度 O(N)O(N) 左侧固定,右侧自适应
  3. 本地存储
  4. 不同网站之间的存储可以互读吗
  5. 满足什么条件算跨域
  6. 如何解决跨域
  7. CDN 原理
  8. http2.0
  9. 反问

2. 华顺信安前端

1. 一面

  1. TCP/UDP 在哪一层,二者区别,应用场景
  2. 浏览器缓存机制
  3. html 解析过程
  4. 看代码写输出结果:原型链
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. 二面

  1. 问项目
  2. 一面笔试题有没有复盘?自己打个分打多少
  3. 盒模型
  4. 有写过动画吗
  5. promise 是同步还是异步的?
  6. 用类设计promise,口述思路即可
  7. 堆和栈 let a = {age:1}, let b = a, b.age = 2, console.log(a)
  8. 写 vue2 你需要多长时间掌握
  9. 最近学了什么前端知识
  10. 博客怎么做的?平时博客上面写什么东西
  11. git 图形化用的什么插件,比输命令好在那里
  12. 为什么学校开 java 你不选后端,跑来选前端(兴趣)
  13. 未来职业规划

3. 字节前端实习

1. 一面

  1. axios 封装
  2. ts 类型体操
  3. unknown 和 any 区别
  4. interface 和 type 区别
  5. 有哪些方法告诉编译器这个 unknown 一定是某个类型
  6. 讲讲类型守卫、联合类型
  7. 简单写个函数类型 传入 string 返回 number 传入 number 返回 string
  8. 项目相关
  9. 讲一讲 jwt 如何进行鉴权
  10. 如果要主动过期 token 怎么办
  11. 简单/复杂请求
  12. token 能放在哪些地方 对应的缺点
  13. token 放在 url 里行不行 为什么
  14. options 预检
  15. 为什么选 nest 怎么做技术选型的 有了解过 eggjs 之类的东西吗
  16. 知道哪些状态管理库 用过 zustand 吗
  17. 讲讲浏览器事件循环
  18. eventloop 讲输出
  19. 了解 node 事件循环吗
  20. 了解 v8 吗
  21. 手写,归并排序
  22. 手写,线程池
  23. 手写,sleep

2. 二面

  1. 介绍一下为什么选择前端和学习方法
  2. vue2 和 vue3 的区别
  3. 了解 vue 的原理吗
  4. 了解 node 的异步xxx吗
  5. 你觉得 node 的使用场景是什么
  6. 说一说 useState 和 Hooks 的执行顺序
  7. 组件间通信方式
  8. 组件的渲染 子组件和父组件的影响关系
  9. MySQL 和 MongoDB 区别
  10. 说输出顺序 变量提升、作用域相关
  11. 手写,字符串格式化
  12. 手写,获取页面节点数量
  13. 手写,tooltip 组件 html + css
  14. 手写,全排列
  15. 三种隐藏元素方式区别
  16. 了解哪些设计模式 举例
  17. jQuery 是什么设计模式
  18. 浏览器安全
  19. 如何防范 CSRF
  20. 301 和 302 状态码
  21. router 的种类

3. 三面

  1. 项目中最有挑战的事
  2. 技术难点
  3. 手写 字符串转对象

4. 百度一面

  1. var a = []; a.push()、a.pop() 请说明在 js 中的意义
  2. promise 有几种状态,可以重复改变吗?
  3. 输出结果,为什么?
const obj3 = {a: 1};
const obj4 = {b: 2};
console.log(obj3 == obj4);  // false
console.log(obj3 === obj4); // false

// 结果 false, false
  1. 聊聊你对语义化的理解
  2. leetcode 原题编辑距离

给你两个单词 word1 和 word2,请返回将 word1 转换成 word2 所使用的最少操作数。可以对一个单词进行如下三种操作:

  1. 插入一个字符
  2. 删除一个字符
  3. 替换一个字符

  1. 如何用 AI 工具,提升开发效率
  2. vite 为什么比 webpack 快?

5. 美团暑期实习

  1. 自我介绍一下,深挖简历,深挖工作经历,深挖项目经历
  2. 如果你的同事出现工作上情绪的问题,你如何调节?
  3. http 的 GET 和 POST 请求有什么区别?
  4. GET 请求和 POST 请求的参数传递有什么区别?如果想用 GET 请求提交数据有什么问题?
  5. 你之前的项目是怎么做线上发布的?
  6. 有尝试不用 vue-cli 搭建过项目吗?
  7. 你是怎么理解软件研发的生命周期的?
  8. 你是怎么理解 RESTfuI 的,它的优缺点是什么?
  9. 图片懒加载怎么做得?有哪些常见方案?
  10. 说说你的理解 U 组件和业务组件有什么区别?
  11. 有没有了解 Webpack 的 loader 和 plugin,它们是怎么实现的?
  12. 如果让你实现一个 loader 你怎么做?
  13. 强缓存和协商缓存什么区别?如何设置?
  14. vue 的数据观测原理
  15. 手写代码,实现图片加载失败后,显示另一个地址内容
  16. 手写-个 Promise 的并发控制
  17. 有没有其他同学想来我们部门的?
  18. 你怎么看待美团的?

6. 中通秋招二面

  1. 自我介绍
  2. 做过得项目中有哪些是值得讲讲的,列举下详细聊聊
  3. 你聊到做地理信息项目中的图层那块,大数量标签的渲染性能问题是如何考量的?
  4. 在项目中是做小组长吗?
  5. 刚才说项目中用原生 JS 多一点,哪个框架用得多一点?看你的项目经验都是 Vue2,Vue3 有了解过吗?用的多吗?
  6. 之前项目用的是 ElementUI 吧,有没有遇到 ElementUI 无法实现或者功能无法支撑的时候?有没有自己封装过一些?二次封装的也行
  7. 有这样一个场景,比如一个页面中需要与其中三个组件中的表单交豆,你该怎么实现?比如需要等待三个表单都验证通过了,才可以正式提交
  8. 如果表单的验证调用方式是异步的呢?你一般怎么做?
  9. 页面的布局效果(上面固定,左面固定,右面自适应),你怎么做?具体聊聊单纯从 CSS 角度
  10. 深浅拷贝有了解吗?再细致讲讲。自己一般实现深浅拷贝用什么方法?
  11. 聊一聊 JS 中的 this
  12. 对于宏任务和微任务有了解吗?具体讲一讲

反问问题:

  • 请问如果我有机会进入咱们公司,一般是进哪个部门?或者做什么业务?
    • 这个看你的意向,如果你有对公司架构和事业群了解,可以和 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 中路由跳转的原理是怎么样的?
  • 如何解决跨域问题?

业务和实习内容?

  1. React 技术栈,做官网的 3D 2D 可视化展示之类的应用、管理应用、大疆内部的 ToB 业务 Vue 框架用的多,能否接受?
  2. 没有关系,框架都是相通的,了解了其内部的设计,上手另一个没有多大问题
  3. 是否可以请假,请假相对容易吗?项目特别紧急的话,要商量着来。平时学校有事情的话,可以的

10. 腾讯秋招

  • 技术栈?Vue2、Vue3、TypeScript
  • Vue2 中组件的通信方式
  • 前端数据存储方式及其应用场景
  • 受控组件和非受控组件
  • 虚拟 DOM
  • Javascript 数据溢出的控制方法
  • 前端的网络安全?(XSS、CSRF)
  • 前端性能优化?

优化回答方向:

  1. 项目构建(借助构建工具分析问题并落地解决)
  2. 浏览器调试、埋点等性能监控
  3. 缓存复用
  4. webpack 优化(代码压缩、分包)
  5. web worker
  6. SSR
  7. CDN

  • 当时项目中最难搞定的问题
    1. 线上问题分析
    2. 适配问题
    3. 工程化建设(代码规范、文档规范、自动化部署)
  • 技术团队的管理和划分