滴滴提前批前端一二三面(用户增长,已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(&quot;abc&quot;));

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

相关推荐

1.&nbsp;什么是js的变量提升,你什么情况下会用var,为什么要提升,不是在外面定义2.&nbsp;我怎么判断对象里面的方法,是不是相等,怎么去做3.&nbsp;讲一下const&nbsp;var&nbsp;let的区别4.&nbsp;promise你了解多少5.&nbsp;json的对象有哪些方法6.&nbsp;!0是true还是false7.&nbsp;js数组的方法,怎么用其他方法去判断这是不是数组不用isArray(问了一下说是用里面js自带的instanceof好像)8.&nbsp;给了案例a.b和c.b怎么去判断里面的值是一样的,不用全等号的方法,有关到地址的变化9.&nbsp;数组去重的一些方法10.&nbsp;interface和typeof的区别11.&nbsp;http缓存12.&nbsp;localStorage是什么类型的缓存,跟sessionstorage有什么区别,那cookie呢13.&nbsp;缓存的存取你有没有用过,怎么弄,如果单纯js取出来怎么取14.&nbsp;浏览器的重绘重排15.&nbsp;react用过哪些hook16.&nbsp;useState里你习惯写值还是方法的回调,这两个有什么区别吗17.&nbsp;在State里希望等数据更新完之后,再去执行一个方法,希望可以怎么去做,state里有依赖跟没依赖有什么区别18.&nbsp;如果在state里写return的话,return干嘛用,什么情况下会执行19.&nbsp;ref用过没20.&nbsp;用useMemo和useCallback有什么区别21.&nbsp;useMemo就一定不会导致渲染吗,有没有一种情况它依赖没变,但是子组件又监听到变化了,你认为是怎么造成的22.&nbsp;有没有了解过react里面的事件,什么是合成事件23.&nbsp;如果让你写一个hook,里面有一个弹窗开启关闭这个动作,让你写hook,你会怎么写(我没想到这是我进去后的第一个需求)你需要关心弹窗的状态吗,自定义hook有什么特别的24.&nbsp;你自定义封装hook你都封装了哪些啊,你在里面怎么获取窗口大小的25.&nbsp;项目里react&nbsp;router设置权限,权限你怎么做的(我没想到这个也是我入职后mt着重教的地方)26.&nbsp;你怎么知道权限这有这个能力的27.&nbsp;你有没有拦截器去处理错误异常的(入职后mt也跟我分析)28.&nbsp;后端说你没权限跳转到登录页,你当时是怎么去做的29.&nbsp;next里,开发过程中你怎么判断它属于客户端还是服务端的部分30.&nbsp;还有什么问题想问还有前面一点#牛客AI配图神器#不记得了,第二次面欢聚了oc了,面试官同时也是mt,是个老二次元,特别耐心特别好,感谢遇见)这里真的很开心,氛围超级nice,不卷以前的面经了#日常实习##实习##前端#
查看30道真题和解析
点赞 评论 收藏
分享
作业帮-前端三年-社招面经1、项目中觉得做的比较好的是哪一个,做得好的原因是什么?重构做的比较好的是什么地方?2、小程序怎么知道用户是否登录?3、登录token是什么?4、在小程序中怎么获取手机号?5、获取到手机号之后&nbsp;怎么做的加密?6、AES加密是什么,跟其他加密方式有什么区别?引申出你知道还有其他加密方式吗?MD5加密是什么,HMAC加密是什么等等7、公钥和私钥的获取方式8、获取手机号后跟微信进行验证,获取票据,这个验证是验证什么呢?9、获取的手机号和票据有什么关系呢,为什么要做这一步验证?这个票据到底是后端给的还是微信给的?10、这个票据的作用是什么?11、登录态是后端判断的还是前端判断的?12、把token存在缓存里,这个缓存指的是什么?13、请求头是什么?14、请求的时候需要一个id,这个id应该放在哪里?15、data和param对于请求而言有什么不一样的?在请求的哪里?在请求头里吗?16、get和post方法的区别?17、小程序中内嵌webview,webview网页需要获取用户身份,该怎么解决这个问题?18、将token拼到url后怎么去验证登录?19、怎么读写cookie20、在小程序中登出之后,打开H5,H5对应的状态是怎么样的?怎么实现的两方状态统一21、获取到空的登录态,怎么验证,怎么处理?22、H5中点击需要登录的交互,怎么实现?23、有一个网站,需要用户打开的时候尽可能快的看到内容,有什么措施24、设计给的图片,怎么选择图片的格式?25、png图片的特点是什么?26、网站怎么支持多语言?27、怎么实现用户在未选择语言时能时网站贴近用户使用的语言?28、实现一个函数,接收一个正整数N,输出N以内所有质数
点赞 评论 收藏
分享
美团-财务科技-前端实习base成都官网1-13上午投递,下午约面试时间1-17晚上8点一面,是一个女面试官。基本是实习和项目,八股就问了react特性,hooks手撕排序,要求不能更改原数组,写了个冒泡堆排序说思路(嘴太笨了,最后写了个代码才解释清楚)嵌套数组获取最大深度(用栈实现,说思路就行)面完5分钟后约二面1-20下午两点二面,应该是部门主管。也是问的实习和项目,无手撕,不过面试官应该不是写前端的,很多东西都在问设计思想和架构设计,有点汗流浃背几个印象比较深的:1.&nbsp;如果让你去负责你实习项目从0到1的搭建,你会怎样从架构上设计这个项目,难点有哪些2.&nbsp;你觉得前端和后端难点分别在哪;如果让你去设计一个excel你会怎么设计(难绷),可能是看我答不出来,换了个问题。你觉得前端除了页面渲染,ui交互,有哪些工程化的东西,答了webpack、vite,以及服务端渲染等3.&nbsp;ai会替代程序员吗美团实习面试整体体验下来很不错,面试官基本都是按照简历提问,不会的地方也会说没事。实习和项目问了绝大部分,八股很少(可惜我还背了那么久)反思:1.&nbsp;面试的时候太紧张了,很多问题没想好就开始说,一面面试官也提了这个问题,可以想好再回答2.&nbsp;实习的项目其实有很多深挖的点可以去说的,但是简历上写的很简单,面试官问细节的时候,没有一个合适的切入点去展开讲,后面再重新整理一下实习项目下午6点已OC,化身团孝子
查看5道真题和解析
点赞 评论 收藏
分享
评论
10
42
分享

创作者周榜

更多
牛客网
牛客企业服务