面经

xiechengyu ... 2022-06-15 15:53:23 面试
  • Js
  • 面试经历
大约 7 分钟

# 前言

前同事面试经历,借此参考学习

一面:

  1. 事件冒泡 捕获

1
  1. webpack 构建流程 compile和compilation对象区别
  2. es6的继承和es5的继承区别
  3. vue的双向绑定实现
  4. http协议相关(http2 http1.1 http缓存)
  5. js parse json to dom
  6. 正则 捕获.....
  7. 计算树的总路径
  8. 快速排序 时间复杂度和空间负责度
  9. gnerator async await
  10. 手写Promise.all
  11. webpack loader和plugin区别 自己简单写一个loader
  12. computed和watch区别
  13. 为什么会出现跨域? 跨域解决方案 浏览器有安全策略
    1. jsonp(script="http://www.baidu.com?callback=test")
    2. nginx
    3. Acess-control-origin: *
    4. websocket
    5. domain + iframe

二面

  1. 柯里化
  2. 状态机
  3. 项目 足够了解 优化方案

快⼿ ⼀⾯

  1. Symbol
  2. Promise、Promise.all、Promise then的第⼆个参数和catch执⾏顺序、async、await
  3. gnerator
  4. ⼩程序直播
  5. ⼩程序执⾏机制
  6. 合并两个有序数组

⼆⾯

  1. 闭包
  2. 观察者模式 事件管理类的定义
  3. 事件触发的最⼩时间间隔
  4. ES6常⽤特性 promise/map/set/symbol
  5. promise aysnc/await
  6. 代码输出顺序
  7. 算法题,m*n矩阵⾛法

三⾯

  1. 描述直播⽅案
  2. 直播⽅案优缺点
  3. 直播⽅案改进点
  4. webrtc
  5. 教师端监控⽅式
  6. crash时如何监控
  7. 如何排查⽼师问题

字节 ⼀⾯

  1. 事件冒泡和捕获
  2. ⾃⼰定dom的事件冒泡和捕获是否都能实现
  3. 浏览器的Event Loop和Node的Event Loop区别
  4. 为什么需要Event Loop
  5. 你了解vue的源码部分
  6. vue computed和watch区别,做了哪些性能优化
  7. 说⼀下如果把python转换成js代码,让你实现如何实现
  8. 实现js的parser思路
  9. ⼿动实现trim函数
  10. webworker

⼆⾯

  1. webpack模块加载和编译模块思路
  2. ⼿写实现⼀个domtojson
  3. ⼿写实现⼀个www.bytedance.com反转成com.bytedance.www,不能使⽤字符串api,时间复杂度和 空间复杂度尽可能低

三⾯

  1. 状态机
  2. 展示github项⽬HappyCode聊了聊状态机
  3. 展示博客⼀篇⽂章聊了聊思路和实现
  4. 说说你了解的编译过程

美团 ⼀⾯

  1. 介绍项⽬
  2. Promise、Promise.race、Promise.any
  3. var A = {}; var B = function(){}; // A.proto === ? // B.proto === ?
  4. 实现Abc123Def转换为abc123-def的函数
  5. list = [{data:['a','b','c']},1, [2, [3, 4, 5]], 6]转成['a', 'b', 'c', 1, 2, 3, 4, 5, 6]
  6. ts泛型
  7. webcomponent和微前端

⼆⾯

  1. 介绍项⽬
  2. 介绍难点
  3. 聊聊wasm
  4. 回⽅阵 给定⼤⼩,以螺旋顺序返回数字的⽅阵. 矩阵应填充⾃然数字,从左上⻆的 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

百度 ⼀⾯

  1. 聊聊写的github项⽬betterwebworker
  2. 说⼀下⼀个线程你如何调度它的优先级
  3. 说⼀下betterwebworker项⽬亮点
  4. 说⼀下使⽤ts好处
  5. 说⼀下你是跟组内协作的
  6. 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/
  7. ⼿写Promise.all实现

⼆⾯

  1. 说说微前端
  2. 说⼀下generator
  3. 主要⾯了很多场景题,都是结合⼀下业务的

三⾯

  1. 主要聊职业规划和团队这个是技术经理⾯,没问什么难点
  2. ⼿写了⼀个求1-100所有素数函数

四⾯

  1. 主要说你做的业务有没有兴趣 五⾯还没⾯。。

⼩⽶ ⼀⾯

  1. es6 class
  2. es5 function
  3. call apply bind
  4. reduce
  5. ⼿写实现⼀个map函数
  6. Promise
  7. 将两个反向存储在链表中的整数求和(即整数的个位存放在了链表⾸部,⼀位数对应⼀个节点),返 回的结果仍⽤链表形式。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 {1,2,3},{3,2,1} 返回:{4,4,4}

⼆⾯没⾯让我取消了

Tubi ⼀⾯

  1. 场景题,25分钟写⼀个⼩项⽬
  2. ⼀些场景你设计的思路

⼆⾯

  1. 场景题,30分钟写⼀个⼩项⽬
  2. 场景题,30分钟写⼀个⼩项⽬,考察点vue、防抖、节流、lru算法

UMU ⼀⾯

  1. 如何⽐较两个css⽂件不同
  2. 如何写⼀个css parser
  3. 你是如何理解this的
  4. 你是如何理解作⽤域和上下⽂的
  5. 编程可以不使⽤this嘛
  6. 聊聊你们直播⽅案
  7. 聊聊如何⽐较两个链表不同
  8. ⼿写diff两颗树不同

⼆⾯

  1. ⼿写查找⼀个字符串中第⼀个只出现⼀次的字符
  2. 聊聊你平常⼯作模式

美团 一面

  1. 数组降维 递归实现

  2. parse

    <div>hello,{{person.name}}</div>’ person.name ='jerry' return <div>hello,jerry</div>
    
    1
  3. webpack complier 和complation区别

  4. json to dom

  5. eventLoop

  6. vue-loader

  7. webpack构建流程

  8. 快速排序(二分法)时间复杂度

  9. 进程间的通信(ipc)

二面

  1. 遍历二叉树
  2. 网络安全xss,csrf,如何预防
  3. 跨域,如何解决
  4. option请求作用,什么是简单,复杂请求
  5. [1,2,4,3,2,1] 找出只出现一次且最大的那个值(只遍历一次)
  6. 合并两个有序数组,时间复杂度O(m+n);
  7. require和import, 以及webpack编译import是如何转换的
  8. webgl渲染流程

三面

  1. 项目问的比较细
  2. Memory cache 和disk cache场景,什么时候会走哪个
  3. http缓存
  4. Cookie 和localstorage
  5. 最近在读什么书

阿里-高德 一面

  1. 直播方案
  2. sdk的设计思路
  3. replace 几个参数的类型
  4. 快速排序的实现及复杂度
  5. vue-router vuex 怎么引入
  6. 实现拖拽的思路
  7. websocket实时聊天的优化
  8. 正则的捕获

二面(之后取消了)

  1. vue知道哪些源码并实现(我说的双向绑定)
  2. vue注入依赖阶段说一下
  3. 页面离开后如果日志上报失败该怎么办
  4. Var str = ‘aabbccddeaa’;找出只出现一次的值尽可能时间复杂度低
  5. Var str = ‘aabbccddeaa’ 输出🤔a2b2c2d2e1a2

网易 一面

  1. axios 如何取消请求
  2. git rebase
  3. electron进程间通信
  4. webpack构建依赖的常用loader plugin以及具体作用
  5. http1.1 和http2.0区别
  6. MediaSource作用
  7. vue2 和vue3区别
  8. code: 百钱买百鸡

二面(挂了)

  1. vue watch和computed场景题 (这个操蛋,把我绕晕了)
  2. Canvas 渲染优化手段
  3. canvas和webgl的优缺点
  4. 为什么canvas渲染会卡顿
  5. 事件捕获和冒泡的场景题(还涉及到阻止冒泡和阻止默认行为)

字节 一面(挂了,我怀疑是我改时间到晚上8点导致这哥们不高兴了,面了1个半小时)

  1. http2.0和http1.1区别(涉及到头部压缩Hpack算法原理,多路复用的原理)
  2. position每个值的作用(相对于哪些元素脱离文档流)
  3. Rem, em, vw,vh
  4. 跨域(出现,解决及原理)
  5. 网络安全(xss,csrf原理及防御)
  6. webgl为什么比canvas性能更优
  7. 讲下yuv比rgb数据小的原因
  8. 盒模型
  9. vue的数据双向绑定原理
  10. 讲讲vuex
  11. Vue-router的有哪几种导航
  12. sendBecon的好处
  13. 快速排序的时间复杂度及空间复杂度
  14. 浏览器eventLoop和node eventLoop
  15. Node下fs模块 readFIle,writeFile的实现原理
  16. Electron remote模块讲一下
  17. 为什么项目要选择音频和视频分开这种方案

腾讯 一面

  1. webpack流程
  2. loader和plugin区别
  3. 写个简单的loader
  4. 白屏,首屏domReady,时间怎么计算
  5. 如何优化白屏时间
  6. http缓存
  7. Vue3为什么打包后比vue2体积小

二面

  1. https和http区别
  2. ssl的流程
  3. Es6继承和es5继承的区别
  4. 正则相关题
  5. 防抖和节流
  6. 讲讲web worker
  7. 如何代码设置不缓存

三面

  1. 聊聊项目
  2. 职业规划
  3. 输入url发生了什么
上次编辑于: 2022年6月20日 10:57
贡献者: xiechengyu