当前位置: 首页 > 面试经验 >

快手前端面经

优质
小牛编辑
79浏览
2023-08-17

快手前端面经

一面:1.简历项目 2. 考察数组的基本方法, 哪些方法会改动原数组哪些不会

3. 一道递归遍历对象手撕题

function fn(tree, name){
 // 请在这里实现
    if(tree.name == name){
        return tree;
    }
    let ans = null;
    if(tree.children && tree.children.length != 0){
        tree.children.forEach((node)=>{
            ans = ans || fn(node,name);
        })
    }
    return ans;
}
var tree = {
 name : '中国',
 children : [
  {
   name : '北京',
   children : [
    {
     name : '朝阳群众'
    },
    {
     name : '海淀区'
    },
    {
     name : '昌平区'
    }
   ]
  },
  {
   name : '浙江省',
   children : [
    {
     name : '杭州市',
     code : '0571',
    },
    {
     name : '嘉兴市'
    },
    {
     name : '绍兴市'
    },
    {
     name : '宁波市'
    }
   ]
  }
 ]
};
var node = fn(tree, '杭州市');
console.log(node);    // { name: '杭州市', code: 0571 }

4. 手撕事件总线(没写出来)

二面:

  1. 代码输出
setTimeout(() => {
  console.log(1);
}, 0);
console.log(2);
new Promise((resolve, reject) => {
  console.log(3);
  resolve();
}).then(() => {
  console.log(4);
  new Promise((resolve, reject) => {
    resolve();
  }).then(() => {
    console.log(6);
  });
});
console.log(5);

2.css

 <style type="text/css">
            #a {
                font-size: 12px
            }

            div p {
                font-size: 13px
            }

            .a .b .c {
                font-size: 15px
            }

            #b {
                font-size: 15px
            }

            div .c {
                font-size: 15px
            }
        </style>
        <div id="a" class="a">
            <div id="b" class="b">
                <p id="c" class="c">I’am here</p>
            </div>
        </div>

请问在标准模式下显示的 I’am here 字符会是多大的字体?命中的是哪一条规则?

3.请写出下列代码的输出结果:

var a = 0, b = 0;
function A(a) {
  A = function (b) {
    console.log(a + b++);
  };
  console.log(a++);
}
A(1);
A(2);

4.实现一个函数 find(obj, str),满足:如var obj = {a:{b:{c:1}}};find(obj,'a.b.c') //返回1find(obj,'a.d.c') //返回undefined

答错了不少,然后二面挂,尝试二战快手,结果一面来了个高手,没顶住压力

二战的一面:

为什么选择前端项目

八股:css: flex布局, 现场出题

Es6:说了解的新功能

考察promise运行顺序: forEach包裹asnyc函数和async for in循环体里await的运行顺序

考察this指向, 普通对象的函数和箭头函数,你说箭头函数的this指向是在编译的时候确定的,那js的编译和c,c++的编译有什么区别

变量提升和暂时性死区的相关概念

说一下你了解的http状态码, 401和403区别。

你之前提到304是协商缓存,请你说一下http缓存机制, cache-control 的nostore和nocache的区别

算法题 240. 搜索二维矩阵 II - 力扣(LeetCode)当时知道要二分但是没做过这种二维的二分,没撕出来

答出来了七八成吧,面试官都是现场编题,水平很高,后来面试官虽然对我有一点正向评价,但还是给我挂了,不过整体面试过程很愉快,学到了一些东西。累了,不会再战了,总归还是无缘手子了,毕竟还是自己太菜了

#快手信息集散地#
 类似资料: