滴滴提前批前端一二三面(用户增长,已g)

三轮面试都在同一天

一面

● 自我介绍
● 项目经历
● React
● http1 vs http2
● vite
● webpack 的 loader 和 plugin 用途,如何开发  ❌
class MyPlugin {
  apply(compiler) {
    compiler.hooks.compile.tap('MyPlugin', (params) => {
      console.log('The compiler is starting to compile...');
    });

    compiler.hooks.compilation.tap('MyPlugin', (compilation) => {
      console.log('The compiler is starting a new compilation...');

      compilation.hooks.optimize.tap('MyPlugin', () => {
        console.log('The compilation is starting to optimize assets...');
      });
    });
  }
}
● 防抖节流    
● fiber
● 数组转树  ❌

二面
● 自我介绍
● 手写new ❌  写了好几个读程序题 demo 提醒我,感动
  ○ 有reutrn 会覆盖 prototype
  ○ 通过bind将 this 指向 继承了prototype 的新对象
function _new(fn){
  let obj = Object.creat(); // 继承
  let ans = fn.call(obj,...args)     // 求返回值,绑定this
  return ans instanceOf Object ? ans : obj 
}  
● 读程序题 promise
● 异步编程
● 手写 race
● 手写对象扁平化
● webpack 
  ○ plugin 运行时机  ❌
● 初始化阶段: 
  ○ environment:在创建 compiler 环境之前。
  ○ afterEnvironment:在 compiler 环境创建完成之后。
● 配置阶段: 
  ○ entryOption:在 webpack 选项的 entry 配置项处理过程中调用。
● 编译阶段: 
  ○ beforeRun:在开始读取记录之前。
  ○ run:在开始读取记录之后,编译开始之前。
  ○ watchRun:在监听模式下,一个新的编译周期开始时。
  ○ beforeCompile:在创建compilation参数之后,执行编译之前。
  ○ compile:在一个新的compilation创建之前。
  ○ thisCompilation:在触发compilation事件之前执行。
  ○ compilation:在compilation创建之后执行。
● 构建模块阶段: 
  ○ make:在完成编译之前。
  ○ afterCompile:在完成编译之后。
● 优化阶段: 
  ○ shouldEmit:在输出 asset 之前调用。
  ○ emit:在输出 asset 到输出目录之前。
  ○ afterEmit:在输出 asset 到输出目录之后。
● 输出阶段: 
  ○ assetEmitted:在 asset 被输出时。
● 完成阶段: 
  ○ done:在 compilation 完成之后。
  ○ failed:在 compilation 失败时。
● 其他钩子: 
  ○ watchClose:在监听模式停止时。
  ○ 为什么更慢 ,遍历所有文件
● React 的渲染原理 FIber
  ○ 箭头函数的原理,局限场景
  ○ diff 算法的具体内容、策略
● 监控白屏SDK 的思路
  ○ a) 检测时机:
    ■ 页面加载完成后(window.onload)
    ■ 或使用 MutationObserver 监听 DOM 变化
b) 检测方法:
    ■ 截图法:使用 html2canvas 等库对页面进行截图,分析像素是否全白
    ■ 元素检查法:检查页面上是否存在关键元素
    ■ 采样法:elementFromPoint()   在页面的不同位置取样点,检查这些点上的元素是否存在且可见。如果大部分采样点都没有有效元素,我们就可以认为页面可能是白屏  
● 反问 
● 业务+规模

三面
● 自我介绍
● 问的问题都是开发性的
● 为什么选择前端
● 如何学习的前端
● React 和 vue 的区别
● 前端的不同方向,设计的技术栈
● 你希望哪个方向
● to B 还是 to C
● 低代码的经历
● React 和 低代码有什么不同

● 获得abc全排列所有序列,分别回溯求 子串
● 求 得 abc 子串时 求子串的全排列
function generateAllCombinations(str) {
    const chars = str.split('');
    const result = new Set();  // 使用 Set 来避免重复

    // 生成所有子集(组合)
    function generateSubsets(start, current) {
        if (current.length > 0) {
            // 对当前子集生成所有排列
            generatePermutations(current, 0);
        }

        for (let i = start; i < chars.length; i++) {
            current.push(chars[i]);
            generateSubsets(i + 1, current);
            current.pop();
        }
    }

    // 生成给定数组的所有排列
    function generatePermutations(arr, start) {
        if (start === arr.length - 1) {
            result.add(arr.join(''));
            return;
        }

        for (let i = start; i < arr.length; i++) {
            [arr[start], arr[i]] = [arr[i], arr[start]];  // 交换
            generatePermutations(arr, start + 1);
            [arr[start], arr[i]] = [arr[i], arr[start]];  // 交换回来(回溯)
        }
    }

    generateSubsets(0, []);
    return Array.from(result);
}

// 测试
console.log(generateAllCombinations(&amp;quot;abc&amp;quot;));

一面手撕没写出来,不知道是不是我三面挂的原因~
#24届软开秋招面试经验大赏##第一次面试##我发现了面试通关密码##如何判断面试是否凉了##你的秋招进展怎么样了##滴滴#
全部评论
结果怎么样
1 回复 分享
发布于 2024-08-09 14:51 江苏
佬大概是什么时候面的呀?
1 回复 分享
发布于 2024-08-09 02:08 广东
想问问楼主,您的三面题目获得 abc 的子串是获得 '' a/ab/abc/ac/bc 这种嘛~
1 回复 分享
发布于 2024-08-08 17:15 北京
我一面没撕出来就挂了
点赞 回复 分享
发布于 2024-09-01 12:15 香港
请问一下总共大概花了多久,半天还是说一整天?
点赞 回复 分享
发布于 2024-08-15 17:05 广东
咱俩是一个部门估计你问的题基本都和我差不多,还有算法,拷打的webpack都差不多
点赞 回复 分享
发布于 2024-08-09 02:30 广东
咋知道自己挂了呀 我面完一周没消息
点赞 回复 分享
发布于 2024-08-08 17:57 北京

相关推荐

头像
01-22 10:36
已编辑
牛客运营
活动规则:你可以使用任何AI工具,生成牛客娘表情包,发送你的生成提示词+图片至本贴评论区,并将无水印原图发送至微信群。活动奖励:1、每张&nbsp;可爱的牛客娘表情包,可获得&nbsp;10牛币奖励(每人上限100张)&nbsp;~2、点赞量最高的前xx个评论,送牛客娘马克杯,(每25个评论,赠送一个马克杯,最多赠送20个)牛客娘表情包交流群:生成示例:&nbsp;这是牛客娘的形象,帮我用牛客娘的形象画一些ACM算法竞赛相关的表情包&nbsp;需要的表情包有:&nbsp;摸头&nbsp;(安慰)&nbsp;呵呵(冷笑的呵呵)&nbsp;牛魔&nbsp;牛啤(左手比大拇指,右手拿着啤酒)&nbsp;这次一定&nbsp;比心&nbsp;不许TD&nbsp;要给他迎头痛击&nbsp;设计要求:&nbsp;1.统一使用萌系风格。&nbsp;2.表情生动和肢体动作丰富、...
Xuan2333:没错没错就是我,牛客娘表情包的创作者,大家都可以自用哒awa (第5张“按住牛客娘开始思索”出自我的世界里的机械动力模组,我做这个表情包可是花了我1个多小时的时间啊qwq) 最后附上所有用过的素材图,希望大家喜欢awa wow 将图片中的人物改成两手托腮,只显示头部照片,眼睛为星星眼,表情开心,并在下方附上文字“wow” Ciallo 将第二张图的人物做出第一张图的姿势并且要在身体各处还有五官和动作完全一致,不要改背景,高分辨率,最佳质量,并在下方加上和图片相符的文字“Ciallo!” 说不出话 生成这个任务面无表情,一脸犹豫,嘴角下垂,双手交叉在胸前,在中间加上一个带有一条斜杠的麦克风的表示闭麦的符号,并且在下面配上文字“说不出话” 按住牛客娘开始思索 将第二张图的人物进行修改,要求是有一只手按在人物的头上,人物的眼神灵动,手略有着急的轻微摆起,头部微微抬起,并将第一张图放在第二张图的下方,高品质,把这张图的下方的黑色部分加上文字“按住牛客娘开始思索”,字体与图片里展示的“牛客娘”这三个字的字体相一致 我也要WA吗 将第一张图的人物的头发,脸部和衣服改成第二张图的人物的,眼睛保持不变,脸上的汗保持不变,头发的长度修改为和图片的一致,脸上不要有红晕,眼睛里不要有高光,眼睛里只要纯灰色查看图片
点赞 评论 收藏
分享
评论
11
46
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务