好的,已经为您重新整理了这份字节面试题的格式,并移除了个人信息。
字节某部门面试题
一面
聊项目(20min)
技术基础
- JS有哪些基本类型?判断类型有哪些方式?
Object.prototype.toString的详细原理是什么? - ES6之前是怎么实现继承的?
- 闭包的作用是什么?举几个实际应用场景。
- React中父子组件的
useEffect执行顺序是怎样的? useCallback和useMemo的使用场景分别是什么?- TCP和UDP有哪些区别?
- HTTPS的加密传输过程是怎样的?
- WebSocket协议在网络分层中属于哪一层?
- Cookie和LocalStorage的区别是什么?
- 如何让LocalStorage实现过期功能?
requestIdleCallback会在什么时候执行?如果某一轮事件循环中不断产生微任务,这一轮会结束吗?
算法与代码
- 一道异步代码输出题。
- 找出二叉树每层的最大值 (要求写出打印顺序)。
追问
git merge和git rebase的区别是什么?平时更常用哪个?- Fiber架构做了哪些优化?
- React中
useState的原理是否基于闭包?
二面
技术与场景设计
- SDK设计:如何能让SDK尽可能地不去影响原生项目的运转?
- JSBridge兼容性问题:
- 背景:SDK需要调用客户端(Native)提供的能力(如打开相机、打电话),这通过JSBridge实现。
- 问题:如果前端组件(依赖于高版本SDK)运行在了安装着低版本SDK的客户端上,导致组件想调用的新功能(如打电话)在当前客户端的JSBridge中不存在,从而调用失败。
- 提问:有没有什么思路或机制来解决这种版本不一致导致的调用失败问题?
- 前端监控:
- 性能指标采集怎么做的?有哪些关键的性能指标?
- 用户行为监控是怎么做的?
- 介绍一下日常中用得比较多的TS工具函数和一些API。
- 有接触过一些Node.js相关的知识吗?或者项目中有没有用到?
- 公司内网站的联合登录(SSO)是如何实现的?如果登录过子域名A后,再访问子域名B,是否会重定向?Cookie存在哪个域名下?
算法
- 写一个类微信抢红包的函数(随机金额版本)。
- 给定一个nums数组,找出所有符合
a+b+c===0的不重复三元组 (顺序不重要)。
三面
实习与项目经历 (30min)
- 在第一段实习公司里面学到了什么?
monorepo相比于多仓管理有哪些优缺点?- 硬链接和软链接的具体应用场景是什么?
- 埋点SDK设计中的兼容性如何处理?浏览器兼容性如何覆盖?
- 埋点项目最终交付形态是什么样子的?存储层用了什么?为什么要用ClickHouse?
- 项目中的技术难点是什么?
- (上一段实习相关内容...)
拷打技术基础
- 访问一个网址的全流程是什么?
- DNS中路由到目标服务器的过程详细讲讲。
- 七层网络协议了解吗?展开讲一下。
- 讲讲HTTP缓存机制及优先级。
- HTTP状态码:4xx和5xx分别代表什么?301、302、307分别是什么?
- HTTPS加密过程。
- 线程和进程的区别。
- LocalStorage与Cookie的差异有哪些?
requestIdleCallback的工作原理。- 日常Git操作有哪些?(展开讲讲
rebase和merge的区别,fetch和pull的区别)。 - 如何撤销本地未提交的修改?如果只能用git命令实现呢?