12.14 蓝湖前端一面

时长:90min

面试官问得很灵活,是根据学了什么来问的,收获很大。

  • 自我介绍
  • 虚拟列表实现(答得不好)
  • 聊到了执行环境(聊了蛮久)
  • 手写执行环境伪码
  • 面试官说写一个闭包结合写的伪码来讲述执行环境原理
  • 聊到了继承
  • 有几种继承,它们的缺点是什么(没答得太好,用call继承的方案叫啥名儿忘记了,我说用call继承会让重复逻辑的函数重复创建,造成资源浪费,面试官说 错,然后进行了解释)PS:感觉我这么答也ok哇。
  • 之后给面试官说手写组合寄生继承被拒绝,说后面再写,其实能不能写出来心里也没底...
  • 原型式继承和原型链继承的区别
  • 我说会有一个原型键能否溯源的区别
  • 一个是直接new 一个是使用Object.create来在原型上去写
  • 手写obj.create()
  • 手写New
  • 类相关问题
  • 算法,图(没A出来),补充runAllTask函数,同时支持异步。
  • 解释:遍历input,比如遇到第一项,id为task1,deps依赖为空,第一项调用runTask就直接返回3;第二项deps依赖id为task1和task3的runTask返回值,因此res1为task1的返回值,res2为task2的返回值,但是此时task3还没有执行,因此本轮循环无法获取值;遍历到第三项时,依赖task1,可以获取到值,runTask返回8;
interface Task {
  id: string;
  deps: string[];
  runTask: Function;
}

const input = [
  {
    id: "task1",
    deps: [],
    runTask: () => 3,
  },
  {
    id: "task2",
    deps: ["task1", "task3"],
    runTask: (res1, res3) => 1 + res1 + res3,
  },
  {
    id: "task3",
    deps: ["task1"],
    runTask: (res1) => 5 + res1,
  },
  {
    id: "task4",
    deps: ["task1", "task2"],
    runTask: (res1, res2) => 3 + res1 + res2,
  },
];

function runAllTask(list: Task[],cb:any) {
	// ...
}

runAllTask(input, (err, res) => {
  console.log(res);
  /** 
    res应该为:
    { task1: 3, task2: 12, task3: 8, task4: 18 }
    */
});
  • 反问问面评 答:还可以,但是作为应届的同学算法有点薄弱(24届的同学算应届的同学吗,问号脸),会有2面。
  • 问团队做什么的,websocket使用多吗。 答:做B端的,不多。

倒了,无二面,但是收获很多,后面会去重新巩固基础。

#蓝湖##前端面经##面经##前端##面试复盘#
全部评论
这么卷
1 回复 分享
发布于 2023-01-13 18:33 广东
恐怖 问的那么难 这么卷以后还得担心中年危机
点赞 回复 分享
发布于 2023-02-27 15:05 广东

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
9 18 评论
分享
牛客网
牛客企业服务