老码农的字节跳动前端面试总结

yumo6663个月前 (04-26)技术文章24

有幸得到猎头推荐参加字节跳动工程效率部的前端面试,为此准备了一周的时间,面试前内心十分忐忑,略微有些小紧张。

由于是下午面试,所以早早起床,翻出许多年前购买的,几近翻烂的《JavaScript设计模式》,从前到后粗略的翻看了下。之后起床刷牙、洗澡、整理下,躺在床上开始闭目养神~

由于是下午两点面试,所以中午12点半从家里出门,担心天气太热,为防止面试时身上有汗水和味道,所以,我决定,打车去面试,这也是我唯一一次打车去面试,不心疼。

结果低估了司机师傅的开车速度,竟然不到20分钟就给我送到了地方,没办法,在字节大楼外转了一圈,13:30入场,前台妹子随机抽了一份面试题给我,开始答题。

两张面试题,给了十多张A4纸给我答题,嗯,有钱,答题笔柔软,有弹性、出水均匀流畅,高级货!

先笔试

  1. 利用html css 编写样式,div垂直body居中、div内的text垂直居中,div高度等于body宽度的一半(第一题就难住我了,充分暴露了我css功底极差的问题,跪,但终究还是写了点)
  2. 第二题判断if([] == false) {} , if({} == false) {} , if([]) {} 不会,跪 (最后一面小哥给我讲下,人不错,good)
  3. 利用宏任务,微任务的知识点判断程序输出(easy ok)
  4. bind函数实现(ok)
  5. trottle函数实现(ok, 可以用任务队列也可以只维护一个function, 我用的队列)
  6. 给定一个不含重复数字的数组arr,指定个数n,目标和sum,判断是否含有由n个不同数字相加得到sum的情况(ok, leetcode 40 变种, 数字不得重复使用)

以上大概用了三十分钟,之后开始一面

一面

来的是个小哥,年纪比较小,无形中给我一种挫败感,看题速度极快,之后继续出题:

  1. 二叉树路径总和(leetcode 112)
  2. function request(urls, maxNumber, callback) 要求编写函数实现,根据urls数组内的url地址进行并发网络请求,最大并发数maxNumber,当所有请求完毕后调用callback函数(已知请求网络的方法可以使用fetch api)

写代码不怕,最短时间给出程序,相互讨论下,至此一面结束,赞


二面

问:介绍下项目前端架构、项目难点

答:简单介绍下,面试官很感兴趣,讲了大概有三十分钟

问:react如何进行性能优化

答:function component + redux、immutable、pure component , shouldComponentUpdate ...

问:https握手机制

答:不太懂

问:CDN原理

答:cache、负载均衡、资源同步

问:CDN获取最近节点资源的算法是什么

答:不懂

问:requestAnimationFrame 和setTimeout 、setInterval的关系

答:都可以用作动画 requestAnimationFrame还可以埋点监测应用卡顿

问:react fiber 了解多少

答:Vritual DOM & FiberNode 利用调度器分批次在不同的tick内渲染 (答的不好)

问:你以前做过性能优化方面的开发,介绍下

答:通过探针抓取performance数据,判断资源请求、白屏、首屏时间、页面卡顿,以及编写代码抓取页面错误、慢加载、代理用户事件进行行为分析等等。

问:sum(100, 200)(300)(...)...(...)() curring化实现

答:写代码,简单

等等还有很多,知识点非常全面,充分暴露了我这个老码农只会搬砖,网络知识一窍不通、框架深度不够的弱点。

二面结束已经5点,面试官说回头HR会有安排(100%没戏了)

整体看,笔试题偏向基础,不难,只要工作中活学活用lodash,通过笔试没问题

但非笔试部分比较难,考察面试者的表达能力,能否通过简单的描述让面试官了解你的工作,以及工作中遇到的问题等等。

码农不仅要会写代码,在框架、网络、算法上也应该深入学习。

总体收获颇丰,虽然面试第二天就收到了拒信,但并不意外,这点字节HR做的不错。

面试失败肯定是能力不足,这点没有任何疑问。



相关文章

用CSS 实现元素垂直居中,有哪些好的方案?

水平居中方案:水平居中设置1、行内元素设置 text-align:center2、定宽块状元素设置 左右 margin 值为 auto3、不定宽块状元素a:在元素外加入 table 标签(完整的,包括...

html实现原生table并设置表格边框的两种方式

在 HTML 中实现原生表格并设置表格边框的详尽教程 在 HTML 中,表格是展示结构化数据的重要工具。为了使表格更加清晰、美观,设置表格边框是常见的需求。本文将深入探讨 两种原生方式 来实现表格边框...

网页设计HTML零基础入门

一、Html概述Html是Hyper Text Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标...

掌握这些CSS知识点,Coding如飞

许多入门学前端的同学,或是准备面试的同学都会去死记硬背一些前端知识点,笔者也是这么经历过来的,但却不推荐这种囫囵吞枣、不求甚解的学习方式,因为这样会走很多弯路,属于“应试”学习,我们更应该的是从基础到...

JAVAEE前奏-今天带大家认识HTML!高手勿进。

接上篇内容。上次介绍了整个课程,目的是告诉大家学习路线,不要偏了。今天开始慢慢告诉大家这些课程的重点。也就是需要学些什么有用的东西,那些没用的可以先不要去学习,等学到一定程度了,再慢慢去挖掘。首先开始...

web开发之-前端css(5)

显示控制一个元素的显示方式,我们可以使用display:block;display:inline-block;display:none;其中布局相关的还有两个很重要的属性:display:flex;和...