面经
xiechengyu ... 2022-06-15 15:53:23 大约 7 分钟
# 前言
前同事面试经历,借此参考学习
一面:
- 事件冒泡 捕获
1
- webpack 构建流程 compile和compilation对象区别
- es6的继承和es5的继承区别
- vue的双向绑定实现
- http协议相关(http2 http1.1 http缓存)
- js parse json to dom
- 正则 捕获.....
- 计算树的总路径
- 快速排序 时间复杂度和空间负责度
- gnerator async await
- 手写Promise.all
- webpack loader和plugin区别 自己简单写一个loader
- computed和watch区别
- 为什么会出现跨域? 跨域解决方案 浏览器有安全策略
- jsonp(script="http://www.baidu.com?callback=test")
- nginx
- Acess-control-origin: *
- websocket
- domain + iframe
二面
- 柯里化
- 状态机
- 项目 足够了解 优化方案
快⼿ ⼀⾯
- Symbol
- Promise、Promise.all、Promise then的第⼆个参数和catch执⾏顺序、async、await
- gnerator
- ⼩程序直播
- ⼩程序执⾏机制
- 合并两个有序数组
⼆⾯
- 闭包
- 观察者模式 事件管理类的定义
- 事件触发的最⼩时间间隔
- ES6常⽤特性 promise/map/set/symbol
- promise aysnc/await
- 代码输出顺序
- 算法题,m*n矩阵⾛法
三⾯
- 描述直播⽅案
- 直播⽅案优缺点
- 直播⽅案改进点
- webrtc
- 教师端监控⽅式
- crash时如何监控
- 如何排查⽼师问题
字节 ⼀⾯
- 事件冒泡和捕获
- ⾃⼰定dom的事件冒泡和捕获是否都能实现
- 浏览器的Event Loop和Node的Event Loop区别
- 为什么需要Event Loop
- 你了解vue的源码部分
- vue computed和watch区别,做了哪些性能优化
- 说⼀下如果把python转换成js代码,让你实现如何实现
- 实现js的parser思路
- ⼿动实现trim函数
- webworker
⼆⾯
- webpack模块加载和编译模块思路
- ⼿写实现⼀个domtojson
- ⼿写实现⼀个www.bytedance.com反转成com.bytedance.www,不能使⽤字符串api,时间复杂度和 空间复杂度尽可能低
三⾯
- 状态机
- 展示github项⽬HappyCode聊了聊状态机
- 展示博客⼀篇⽂章聊了聊思路和实现
- 说说你了解的编译过程
美团 ⼀⾯
- 介绍项⽬
- Promise、Promise.race、Promise.any
- var A = {}; var B = function(){}; // A.proto === ? // B.proto === ?
- 实现Abc123Def转换为abc123-def的函数
- list = [{data:['a','b','c']},1, [2, [3, 4, 5]], 6]转成['a', 'b', 'c', 1, 2, 3, 4, 5, 6]
- ts泛型
- webcomponent和微前端
⼆⾯
- 介绍项⽬
- 介绍难点
- 聊聊wasm
- 回⽅阵 给定⼤⼩,以螺旋顺序返回数字的⽅阵. 矩阵应填充⾃然数字,从左上⻆的 1 开始,以向内,顺时针螺旋顺序增加,如下例所示: ⼤⼩为 3 的螺旋矩阵: 1 2 3 8 9 4 7 6 5 尺⼨为 4 的螺旋矩阵: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
百度 ⼀⾯
- 聊聊写的github项⽬betterwebworker
- 说⼀下⼀个线程你如何调度它的优先级
- 说⼀下betterwebworker项⽬亮点
- 说⼀下使⽤ts好处
- 说⼀下你是跟组内协作的
- https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/ 7 . https://leetcode-cn.com/problems/n-th-tribonacci-number/
- ⼿写Promise.all实现
⼆⾯
- 说说微前端
- 说⼀下generator
- 主要⾯了很多场景题,都是结合⼀下业务的
三⾯
- 主要聊职业规划和团队这个是技术经理⾯,没问什么难点
- ⼿写了⼀个求1-100所有素数函数
四⾯
- 主要说你做的业务有没有兴趣 五⾯还没⾯。。
⼩⽶ ⼀⾯
- es6 class
- es5 function
- call apply bind
- reduce
- ⼿写实现⼀个map函数
- Promise
- 将两个反向存储在链表中的整数求和(即整数的个位存放在了链表⾸部,⼀位数对应⼀个节点),返 回的结果仍⽤链表形式。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 {1,2,3},{3,2,1} 返回:{4,4,4}
⼆⾯没⾯让我取消了
Tubi ⼀⾯
- 场景题,25分钟写⼀个⼩项⽬
- ⼀些场景你设计的思路
⼆⾯
- 场景题,30分钟写⼀个⼩项⽬
- 场景题,30分钟写⼀个⼩项⽬,考察点vue、防抖、节流、lru算法
UMU ⼀⾯
- 如何⽐较两个css⽂件不同
- 如何写⼀个css parser
- 你是如何理解this的
- 你是如何理解作⽤域和上下⽂的
- 编程可以不使⽤this嘛
- 聊聊你们直播⽅案
- 聊聊如何⽐较两个链表不同
- ⼿写diff两颗树不同
⼆⾯
- ⼿写查找⼀个字符串中第⼀个只出现⼀次的字符
- 聊聊你平常⼯作模式
美团 一面
数组降维 递归实现
parse
<div>hello,{{person.name}}</div>’ person.name ='jerry' return <div>hello,jerry</div>
1webpack complier 和complation区别
json to dom
eventLoop
vue-loader
webpack构建流程
快速排序(二分法)时间复杂度
进程间的通信(ipc)
二面
- 遍历二叉树
- 网络安全xss,csrf,如何预防
- 跨域,如何解决
- option请求作用,什么是简单,复杂请求
- [1,2,4,3,2,1] 找出只出现一次且最大的那个值(只遍历一次)
- 合并两个有序数组,时间复杂度O(m+n);
- require和import, 以及webpack编译import是如何转换的
- webgl渲染流程
三面
- 项目问的比较细
- Memory cache 和disk cache场景,什么时候会走哪个
- http缓存
- Cookie 和localstorage
- 最近在读什么书
阿里-高德 一面
- 直播方案
- sdk的设计思路
- replace 几个参数的类型
- 快速排序的实现及复杂度
- vue-router vuex 怎么引入
- 实现拖拽的思路
- websocket实时聊天的优化
- 正则的捕获
二面(之后取消了)
- vue知道哪些源码并实现(我说的双向绑定)
- vue注入依赖阶段说一下
- 页面离开后如果日志上报失败该怎么办
- Var str = ‘aabbccddeaa’;找出只出现一次的值尽可能时间复杂度低
- Var str = ‘aabbccddeaa’ 输出🤔a2b2c2d2e1a2
网易 一面
- axios 如何取消请求
- git rebase
- electron进程间通信
- webpack构建依赖的常用loader plugin以及具体作用
- http1.1 和http2.0区别
- MediaSource作用
- vue2 和vue3区别
- code: 百钱买百鸡
二面(挂了)
- vue watch和computed场景题 (这个操蛋,把我绕晕了)
- Canvas 渲染优化手段
- canvas和webgl的优缺点
- 为什么canvas渲染会卡顿
- 事件捕获和冒泡的场景题(还涉及到阻止冒泡和阻止默认行为)
字节 一面(挂了,我怀疑是我改时间到晚上8点导致这哥们不高兴了,面了1个半小时)
- http2.0和http1.1区别(涉及到头部压缩Hpack算法原理,多路复用的原理)
- position每个值的作用(相对于哪些元素脱离文档流)
- Rem, em, vw,vh
- 跨域(出现,解决及原理)
- 网络安全(xss,csrf原理及防御)
- webgl为什么比canvas性能更优
- 讲下yuv比rgb数据小的原因
- 盒模型
- vue的数据双向绑定原理
- 讲讲vuex
- Vue-router的有哪几种导航
- sendBecon的好处
- 快速排序的时间复杂度及空间复杂度
- 浏览器eventLoop和node eventLoop
- Node下fs模块 readFIle,writeFile的实现原理
- Electron remote模块讲一下
- 为什么项目要选择音频和视频分开这种方案
腾讯 一面
- webpack流程
- loader和plugin区别
- 写个简单的loader
- 白屏,首屏domReady,时间怎么计算
- 如何优化白屏时间
- http缓存
- Vue3为什么打包后比vue2体积小
二面
- https和http区别
- ssl的流程
- Es6继承和es5继承的区别
- 正则相关题
- 防抖和节流
- 讲讲web worker
- 如何代码设置不缓存
三面
- 聊聊项目
- 职业规划
- 输入url发生了什么