字节跳动前端面经(一面+二面)

一面 50min

一面是一个小哥面的,态度十分好(字节的面试没听过不好的)

  • 1.css绘制三角形
  • 2.this指针的指向 四种调用,箭头函数,再说了一下call改变指针的实现思路。
  • 3.根据给出的对象判断this指针的指向 答这道题目的时候十分紧张,思路混乱,还好引导了几次。
  • 4.问了下项目 简历上的项目,深究了一下,我就说了一个简单的思路。
  • 5.算法题: 最长无重复子串 我这个算法思路没问题,但是实操的时候紧张错误百出,经过指导最后写出来了。
  • 6.智力题: 虎吃羊问题。100只虎1只羊,老虎吃了羊就会变羊。第一只羊会不会死。 答:不会,动态规划问题。偶数不会吃羊,奇数会吃。

中间歇了一个半小时

二面 55min (有部分面试题忘了)

二面的小哥,态度也十分好。

  • 1.https相关。
  • 2.css实现这样一个布局: 无论外层容器宽高如何变化,内层始终相对于外层容器垂直居中,左右各相距20px,同时内层的高度始终为自身宽度的50%。(至少写一种,说出实现多种)
  • 3.前端性能优化 对用户来说首批加载时间,srr服务端渲染,pwa缓存,懒加载(异步加载import函数,图片滚动渲染),预加载(dns缓存,proload),http请求合并。 其实还有很多例如:雪碧图等但是当时忘了。
  • 4.redux和react
  • 5.react的diff算法做了哪些优化
  • 6.eventloop 判断输出 说了下node环境(版本不同还有区别)的和浏览器环境的输出,结果相同
  • 7.JS es5实现一个字符串编码
  • 8.对输入的字符串:去除其中的字符'b';去除相邻的'a'和'c'。 'aabcd' -> 'ad' 'aaabbccc' -> '' 不允许使用类似string.replace函数。要求时间、空间复杂度尽量优化
  • 9.node相关(我说了解不多,只会使用简单框架koa)
  • 10.还问了MangoDB的问题,我只是简单了解,简述了一下面对对象数据库和关系型数据库的简单区别。主要问的是我node中有没有使用过李四sequelize的包。
  • 11.webpack的问题,简述了一下webpack的构建过程(不全,主要是webpack生命周期忘了)。