字节前端一面凉经

字节前端一面游记

  • 自我介绍环节,然后开启代码页面

项目拷打

从简历上第一个项目——网页版简易拳皇开始问

概述

  • 如何实现背景框、血条以及人物移动基本功能

css 部分

  • 血条如何实现 早忘了(bushi),后来问 css 会啥我说会 flex,然后考了垂直居中的几种方式(糊出来两种)

这个时候网断了一次,属于是 gg 的开始

js 部分

  • 如何实现人物跳跃功能 凭着记忆写了一个 Player 类,然后设置 gravity 和 v_vertical 属性糊了一个 jump 函数和 render 函数,面试官对细节拷打很久最后给过了。

之后的项目就没继续问了,本来还看了 vue 响应式之类的知识点。

代码部分

js 判断数据类型

typeof 和 isArray 一开始没调对,后来面试官看不下去大发慈悲让我调过了(

js this 相关

首先读代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class User {
constructor(name) {
this.name = 'Jarry';
}

getInfo() {
return {
name: 'Tom',
getName() {
return this.name;
}
}
}
}

const u1 = new User();
u1.getInfo().getName();

很简单的this问题,问最后输出。然后需要改动 getName 让其输出 Jarry。改箭头函数就行,然后接着问普通函数和箭头函数区别,答了 new args this 仨点但是追问细节没说出来。

反问环节

最后时间到了,问了

  • 如何评价(bushi) 面试官评价基础不够扎实
  • 业务主要内容和技术栈 视频开发,React

如何评价

  • 和想象中不太一样的是没有基础问答环节,所有东西都是 show me your code。没考闭包、事件循环、节流/防抖/柯里化这些 “热点”。
  • 需要对项目极度熟悉,熟悉到可以凭记忆在代码界面复现的程度(被问的项目作于一年前,吃了大亏)。
  • 很考验 js 基础,面试官不认可模棱两可的回答。很可惜只有一天半时间准备面试,临时抱佛脚不太行。