快手三轮技术面+1轮,已拿意向书
前言
而我是一轮和二轮是连续进行的,一共是3轮技术面+1轮HR面,可能和岗位、部门有关。
一面(50min)
-
基本数据类型,引用类型,以及他们的区别
-
typeof [1,2,3]输出什么?那js如何判断数组
-
说一下原型链。原型链的一道题
-
输出结果typeof String(“asdfasdf”)
-
new的过程
-
Object.create()的内部原理
-
Object.create(null)和{}的区别
-
实现一个sleep函数
-
数组的常见方法 shift push splice sort every reverse以及说说哪些是更改原数组的方法
-
reduce将一个对象数组合并成一个对象
-
Object.freeze()如何冻结对象
-
编程题:flatten数组
-
foo.bind(A). bind(B). bind(C),this指向谁?
-
import和require的区别
-
HttpOnly,cookie其他的属性
-
CORS的过程
-
盒模型
-
position
-
单行文本的水平垂直居中
-
多行文本的水平垂直居中
-
css实现一个div向右平移100px的动画
二面(60min)
1. 编程题:实现repeat函数,每隔一段时间执行一次函数,重复n次。
//每隔2s输出一次"helloworld",共输出4次 const repeatFunc = repeat(console.log, 4, 2000); repeatFunc("helloworld");
2. 编程题:将数组转成树形结构的对象
var locationList = [ { id: 0, name: "中国" }, { id: 1, pid: 0, name: "北京市" }, { id: 2, pid: 1, name: "昌平区" }, { id: 3, pid: 1, name: "海淀区" }]; trans(locationList)
- 水平垂直居中的方法
-
BFC
-
px rem rm vh vw
-
实现一个正方形,拖拽窗口,正方形等比例缩放
-
强缓存和协商缓存
-
重排和重绘
-
http为什么3次握手
-
Vue数据的双向绑定原理
-
Vue3用的proxy有什么不同
-
前端路由的2种实现方式。
三面(40min)
1. 编程题:判断一个字符串是否完全由某个子串重复组成
举例如下:
-
abcabcabc true
-
abababcd false
-
abc false
-
aaaaaaaa true