快手一、二、三面面经(已意向)

一面:

实现元素水平垂直居中
实现16:9的盒子,不定宽(没写出来)
实现动画,元素先向右移动200px,再返回原点,一共移动n次(animation添加两个属性即可)
对于原型的理解
原型链继承和class区别
闭包的理解
浏览器事件循环机制
详细说一下vue3 composition api
vue2和vue3区别
vue响应性原理(详细说了一下proxy代理)
vue生命周期
watch和computed区别
git常见命令
webpack相关(也就那几个常见问题吧,对这个还不太熟,答得不是很好)
然后问了点项目
findInTree(list: TreeData[], id: number): TreeData
type TreeData = {
    id: number
    name: string
    children: TreeData[]
}

const list = [
    {id: 1, name: 'a', children: [
        {id: 2, name: 'a1', children: null},
        {id: 3, name: 'a2', children: [
            {id: 4, name: 'a22', children: null}
        ]}
    ]},
    {id: 5, name: 'b', children: null}
]
//取出id对应的对象,也就是遍历,可以深度也可以广度

总结:面试体验还不错,面试官很有耐心,有些不会或者不熟的点就马上跳过或者直接说答案了(还以为是kpi面🤣)周五面的,周一约二面

二面:

手撕代码:
const data = [1, 2, 3, 0, 0, 0, 5, 2, 0, 1, 0, 0, 2];
//去除三个及以上相邻的0
//返回结果:[1,2,3,5,2,0,1,0,0,2]

三面:

问了点项目
手撕两道题:
// Example 1
mergeDeepList([{id: 1}, {id: 3, pid: 1}, {id:4}]) 
//=> [{id:1, children: [{id:3}]}, {id:4}]

// Example 2
mergeDeepList([{id: 3, pid: 1}, {id:4, pid:3},{id: 1}]) 
//=>[{id:1, chidren: [{id:3, children: [{id:4}]}]}]

// 1. Node => {id, pid}  只关心id和pid即可, pid代表父节点id
// 2. 顺序不定, 但pid一定有对应的id节点存在
// 3. O(n) 时间复杂度解决  

//这个题去年快手面经上也有类似的,但是还是答得不好
// 1. 三种括号  {}  []  ()
// 2. 要成对闭合
// 3. 可以同级或大小嵌套,不允许小到大嵌套   {} > [] > ()
//判断括号合法性,返回true/false

大家点点赞支持支持呀😁,祝大家offer多多!!!



#快手##面经##秋招##前端##前端工程师#
全部评论
哥,前端面试,会问代码题目吗
1 回复
分享
发布于 2021-10-02 20:50
求二三面面经
点赞 回复
分享
发布于 2021-10-01 19:54
联想
校招火热招聘中
官网直投
三面的第一题怎么做啊
点赞 回复
分享
发布于 2021-10-05 21:51
一面盒子感觉考的是不是flex阿🤔
点赞 回复
分享
发布于 2021-10-08 13:57

相关推荐

5 47 评论
分享
牛客网
牛客企业服务