前言
本瓜前段时间(2020.05.17 ~ 2020.05.25)可能由于机缘巧合?获得了几家大厂的面试资格。遂去试了试水(不该裸面呀),发现自己还是火候不够。
失败了,但是没有关系,真的没有关系。告诉自己,从不缺重头再来的勇气!
送给心中有大厂梦的同学一句话:
高山仰止 景行行止 假以时日 吾定能至
以下面试题就不写解答了。
我知道临时抱抱佛脚,找两篇面经补一补,背一背,在某些面试中可能会适用,但是对于自己知识体系的构建帮助不大。而事实上,好的面试官总能试出你基础是否真的扎实。
另外,下面的面试题并非是一边面试一边记录下来的,都是面完了,我仔细回顾然后记下的。
有些基本上是一些关键词,并没有形成一个问题。仅供参考,相信我,问题肯定比表面的关键词要深很多、全很多,请吃透相关!
目的:分享交流
建议:回归书籍、回归技术原理
- 注:题目可能顺序有颠倒
正文
微信
- 2020.05.17 一轮
- keep-alive
- vuex具体有哪些,原理
- 浏览器缓存流程
- webpckage plugin 实现 及优化速度,webpack 打包细节
- https原理、细节
- promise、promise chain
- 跨域
- 输入一个Url会发生什么:三次握手
- 快排
- 进程线程
- 数组中连续的偶数,一共有多少个(双指针,指针对撞)
感受:前面问项目,问的十分细致,被问的绕晕了。后面问基础,基础大部分都能答一些,但是深入就不知道了。后面快排也会追问,算法题目直接思路乱的。
虾皮
- 2020.05.18 一轮
- 强缓存、协商缓存
- 闭包(手写)
- 从输入一个url 到 页面渲染,domtree csstree rendertree
- import export require 细节
- render-tree 细节
- LRU 缓存算法
- TCP 滑动窗口
- v-if和v-show
- svg和canvas的区别
感受:知识和项目穿插问,也会就某个知识点进行追问,问的点大部分会难一些。算法题,手撕LRU,给我也整蒙。
shein
- 2020.05.19 一轮
- 项目介绍
- 组件keep-alive
- 虚拟dom attach
- localstorage 5M存满
- webp
- 渐进式图片细节
- 原生画一个饼状图
- flex 布局
感受:问题问的比较浅。基本上都能答出来。从问题都能看到面试官水平,这也是一个双向选择。
斗鱼?斗游
- 2020.05.21 一轮
- 10000 条评论如何显示在页面 - 虚拟列表
- 输入一个url会发生什么
- 强缓存和协商缓存,协商缓存具体细节
- 闭包及应用:防抖和节流(节流内部实现)
- cssom 影响 js的加载
- 抽奖:vip数组,普通用户数组
- 缓存css和js有什么区别
- vue 的双向绑定,observe 的具体实现
- 数据结构-二叉树的遍历 深度 和 广度
- webpack 打包速度优化
- linux 查找日志
- setTimeOut() nextTick
- 2020.05.26 二轮
- 快排时间复杂度
- 链表各种操作的时间复杂度
- 54张牌随机打乱实现及优化
- 输入一个url 过程
- 页面渲染
- 数据结构堆栈、完全二叉树
- 怎样判断一个http请求结束
感受:面试流程中规中矩,难度中等,最后给了口头 offer,选择拒掉了。 理由
字节跳动-抖音
2020.05.24 一轮
- H5,rem,em布局,换算
- 发布订阅模式
class emit {
}
cosnt eeee = new emit()
eeee.on(''aa' , function() { console.log(1)})
eeee.on(''aa' , function() {console.log(2)})
eeee.emit('aa)
//class emit{}
- 实现右上角弹窗(写代码,全局绑定,属性)
- 项目问题-localstorage、sessionstorage
- websocket 通信-心跳检测
- 双向绑定-vue3-proxy
- 打包工具
感受:面试官一看很有经验,随时发问,搞得人心有点虚,多问几个为什么就不行了。编程题,协同编程,写伪代码还不行,给出提示后,要得出可运行的函数。
腾讯
- 2020.05.25 一轮
- HTTP content-length、chunk,识别 body 和 header。
- Vue Observe 原理。
- Vue 的构建流程,Vdom。
- Vue template。
- 小程序底层的渲染。
- webpack。
- url encode。
- module.exports exports
- 编程:coding题:8✖️8棋盘,值分辨为0或者,1代表有车,0代表没车,并返回这张棋盘是否存在相互攻击的情况。
- 编程:8✖️8棋盘,随机有N个车,要求获取到不被车攻击的所有点。
感受:感觉面试官也属于有经验的那种,问的很基础,HTTP协议请求头问了很多,被不断追问。 编程题,写了,没有被点评,时长四十五分钟。
阶段感受
- HTTP 很基础且很重要
- 缓存及性能很重要很重要
- Vue原理很重要很重要
- 数据结构算法很重要很重要
- 项目细节很重要很重要。
总结
总而言之,言而总之,我收获到的最大的感受是四个字:格物致知!
平常我们写代码可能真的不会追本溯源,都是 CV 工程师,CV 完了摸摸鱼,打卡下班。这样时间一久,都不觉得自己是一名 coder 了......
如果你想做点什么!或者你想上升!凡事请多问几个“为什么”!
最近还学了个名词 —— “5W1H”
即 “What”、“Why”、“Who”、“When”、“Where”,还有 “How”。
程序员?也得学学表达!把事情描述清楚很重要。
共勉!