2023/03 面经

# 腾讯

  • 1 < 2 < 33 > 2 > 1 返回什么

  • 一道 var 变量提升的问题

  • (coding)从数组中找到和为 M 的 N 个数

  • (coding)求子树的最大权(题目是简化的,没明白意思)

  • 一道 css 样式问题,<p><a><img src="xxx"></a>hello world</p>,对 img 设置绝对定位和相对定位,top = left = 10%,问图片处于什么位置

  • 实现柯里化函数 curryAdd(1, 2, 3) === 6; curryAdd(1)(2, 3) === 6; curryAdd(1)(2)(3) === 6

  • 跨域问题

  • 请求缓存问题

  • 工作中遇到的最大困难是什么?如何解决的?

  • react 和 vue 的区别

  • 业务指标,埋点数据是怎么处理的?

  • 团队概况,为什么离职?

# 作业帮

  • rn 页面是怎么渲染的?
  • rn 是怎么处理路由的?
  • 做过哪些性能优化?
  • 组件库开发有哪些难点?怎么打包组件库?
  • 给业务团队提供项目模板 or 脚手架,应该具备哪些能力?
  • (coding)实现单例模式 assert(new Parent() === new Parent(), true); Parent.getInstance(ClassA)
  • (coding)实现一个调度器控制,控制 promise 并发

# 微派

  • 输入 url 到页面渲染的过程?
  • react 和 vue 的区别?
  • 给自己技能打分,react, vue, js, css 各打多少分,如何快速提升某一项技能的分数?
  • 工作中遇到的最大困难是什么?如何解决的?
  • 如何上报所有页面的 FMP ?只修改一处地方
  • 高流量场景和低流量场景应该怎么做性能优化?
  • lighthouse 和 performance 了解过吗?
  • 性能优化方法论有了解过吗?
  • 现公司几点下班的,能不能接受加班

# 字节跳动

  • 业务概况,团队规模
  • 业务给公司带来的收益是什么?
  • 觉得目前业务的困境是什么?
  • 做了什么性能优化?性能指标和业务指标各提升了多少?
  • 说说做的最有深度的事
  • 如何解决跨域问题?跨域请求是在哪个阶段被拦截的?
  • typeof nullnull instaceof Object 返回什么?为什么?
  • (coding)求一个数组连续子序列的最大和
  • (coding)设计一个轮播图组件

# oppo

  • 工作中遇到的最大困难是什么?如何解决的?
  • rn 热更新是怎么做的?
  • rn 插件化是怎么做的?
  • 浏览器缓存
  • https 连接过程
  • rn 生产环境遇到哪些问题?
  • 微前端,qiankun 原理

# 米哈游

  • 工作中遇到的最大困难是什么?如何解决的?
  • 输入 url 到页面渲染的过程?
  • 浏览器缓存
  • 给一对父子元素加点击冒泡事件和捕获事件,问调用顺讯
  • 水平垂直居中的方法
  • 浅拷贝和深拷贝,循环引用的对象如何深拷贝
  • 如何判断变量类型
  • [] instaceof Array[] instanceof Object 返回什么
  • react 如何处理元素跨层级交换和同级交换

# Alibaba - lazada

  • 团队概况,当前业务是做什么的
  • 在当前业务中充当什么角色,做了哪些东西
  • 业务有哪些模块,各有什么作用
  • 觉得项目中有哪些可改进点,从业务和技术上说
  • 业务关键指标是什么
  • 有没有和竞品做性能对比,说说具体差别
  • (coding)算法题,十字路口出车管理,leetcode 没搜到
  • Tell me about your three expectations for your new job (英文回答对新工作的三个期望)
  • What is your performance ranking and your supervisor's recent evaluation of you (英文回答绩效排名,前百分之多少,主管最近一次对你的评价)

# 金山

一面

  • 输入 url 到页面渲染的过程?
  • async 和 defer 的区别
  • xss 和 csrf
  • 跨域处理
  • 浏览器缓存
  • react 性能优化
  • forwardRef 原理
  • react diff 算法
  • vue 响应式原理
  • webpack loader 和 plugin 原理
  • webpack 打包速度怎么优化
  • 如何解决 ios 上 inputRef.current.focus() 键盘不弹起的问题
  • 长列表状态丢失问题
  • 递归栈溢出怎么解决
  • 大文件上传怎么处理,为什么要限制并发

二面

简历中的问题

# 拼多多

一面

  • 简历中一些问题,问具体怎么实现
  • http2 有哪些优点?多路复用的原理
  • (coding)用 React 实现一个倒计时组件
  • (coding)扑克牌问题,leetcode 没搜到
  • (coding)实现一个工具函数,限制 promise 是否超时,超时后返回错误
  • 有没有了解公司作息

二面

  • 204, 304, 404, 504 区别
  • 输入 url 到渲染页面过程
  • async 和 defer 区别
  • (coding)判断手牌是否有同花顺
  • (coding)找出语句里面出现最多的英文单词
  • (coding)根据 name 获取 cookie 值,获取 query 值
  • 工作作息,生活成本有没有了解
  • 家人是否支持
  • 有什么想问的

# 喜马拉雅

  • 国际化语言怎么处理,怎么打包
  • 项目中的一些点,怎么实现
  • useMemo 和 useCallback 的区别
  • webpack5 模块联邦的优点和缺点
  • no-store 和 no-cache 的区别
  • hmr 原理
  • webpack sideeffects 作用
  • script 加 crossorigin 的作用
    • anonymous 表示不需要发送用户凭据

# 富途

  • 最大的困难,如何解决
  • https 连接过程
  • 定时器为什么不准确
  • 事件循环
  • js 垃圾回收
  • 闭包
  • 跨域的方法
  • 原型链
  • (coding)手写 instanceof
  • (coding)寻找几个字符串的公共前缀

# 腾讯云智子公司

一面

  • 简历中的问题
  • react 和 vue 的区别
  • (coding)一个文件有十亿个整数,排序去重输出到另一个文件

二面

  • 工作中遇到的最难的问题
  • 原来团队规模
  • 需求提出到上线的流程
  • 你在团队中的定位
  • 你有什么不可被替代的地方

# 同花顺

一面

  • 简历中的问题
  • cli 插件化怎么做
  • (coding)实现一个调度器控制,控制 promise 并发
  • (coding)控制 promise 重试
  • 大文件上传如何优化存储,重复文件如何解决
  • 组件库版本依赖问题
  • node 多个网关如何定位错误

二面

  • 遇到的困难,如何解决
  • createElement 返回什么
  • $typeof$ 有什么作用
  • react diff 算法
  • 手写 Required 泛型

# 斗鱼

  • h5 跳转到 app 指定页面如何实现
  • 业务长列表组件如何设计
  • 前端工程化的一些问题

# 携程旅行

  • react 渲染过程
  • react 18 有哪些新特性
  • setState 是怎么合并的
  • flushSync 有什么作用
  • react diff 算法
  • 性能指标有哪些
  • 如何提高一个页面的性能指标

# 红杉

  • 遇到的困难,如何解决
  • 简历中的问题
  • http 缓存
  • 多图长列表如何优化
  • (coding)用 react + ts 实现一个 form,加错误校验,要求现场跑起来
  • 为什么面试我们公司

# Q&A 丢分问题补充

https 连接过程

  • 在使用HTTPS是需要保证服务端配置正确了对应的安全证书
  • 客户端发送请求到服务端
  • 服务端返回公钥和证书到客户端
  • 客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端
  • 服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密
  • 客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户
  • SSL加密建立