字节暑期实习一面+二面
一面(2-24, 60min):
第一次在大厂面试紧张得要命,不过开始的时候还是把情绪稳住了,有两个面试官,一个问问题一个在旁边看着记录,面试官很和善,基本上就是盯着简历在问,整场感觉很不错,就是我有点紧张总是在胡言乱语
1. 自我介绍
2. 选一个项目,然后说难点的地方
3. 用到了Vuex?那说下Vuex吧
4. 说说路由守卫
5. router是怎么知道路由改变的?(不知道,只回答了路由有两个模式)
6. 学Vue有遇到什么有印象的地方?(回答了自定义事件和ref)
7. 自定义事件是怎么实现的呢?
8. 自定义事件是父子数据通信,你知道还有什么方法可以做到父子通信吗?
9. 你谈到了event-bus,你知道其原理吗?
10. 谈一下订阅发布模式
11. 你觉得前端应该分为哪些工作呢?
12. 谈谈你所知道的前端安全问题
13. 怎么样窃取到cookie?
14. 怎么把事件绑定到dom上?移除事件?谈谈Vue事件绑定是怎么做到的?有了解事件委托吗?
15. 写过react的话能谈谈Vue和React的区别吗?
16. 写过一点python可以谈一谈python和C ++的区别吗
17. 怎么做到窗口自动滚动的?
18. 用过es6吗?es6新增了哪些东西呢?
19. 你刚刚谈到了异步,能说说异步有什么作用吗?
20. 配置过前端环境吗?
21. 用过git吗?
22. 说说Webpack打包机制
23. webpack里面有碰过什么东西吗?
24. 说说() => {}; 和(() => {})();
25. 写一个异步调度器(不难但是完全没写过,思路应该还算对,没写出来寄了)
答案:
class Scheduler { constructor(maxNum) { this.taskList = []; this.count = 0; this.maxNum = maxNum; } async add(promiseCreator) { if (this.count >= this.maxNum) { await new Promise((resolve) => { this.taskList.push(resolve) }) } this.count ++; const result = await promiseCreator(); this.count --; if (this.taskList.length > 0) { this.taskList.shift()(); } return result; } }
26. 反问
大概就是这样,估计凉凉了😂
有一些问得还挺基础的但实在不知道该怎么回答,面试官叫我回去记得看看哈哈
二面(2-28, 60min)
没想到一面通过了,今天来了二面。
二面面试官一看就是那种资深大佬,直接跳过自我介绍了,问了很多对前端的理解,考了几个题目(基本上在不断引导,感觉像是给我在上课一样)人很好,整场感觉很好,感觉也学了不少东西
问题比较零散不太记得了,大概是下面这些
1. 谈谈你对vue和react的理解
2. dom,考了个节点交换(我直接伪数组弄下来交换了,面试官说这样子交换了但没渲染到dom树上)
3. 谈谈es6(两次都问到了看来这个还蛮重要的)
4. Map和Set有什么区别
5. 数组去重(我写了两个方法)
6. 出了道考察代码结果的题(是一个bind绑定到null上面,我一开始看楞了不知道什么意思,后面面试官引导说其实就是null.push(),没这个方法肯定直接报错,真没考虑到报错还以为有什么新的操作)
7. 出了个考察流程的,俄罗斯方块怎么写,我大概讲了一下后面面试官跟我讲面向对象的方法
8. 谈了下网络,http在哪一层,http下面一层是啥(tcp),看到面试官都笑嘻了估计不太行了哈哈,这方面问了很少就略过了
9. 前端的学习思路
10. 反问
不知道结果如何,但感觉比一面冷静多了,不管怎么样都是一次很好的体验
#字节跳动前端实习面经##面试题目##字节跳动##面试流程##面经##实习##春招##内推#