我也是,意向邮件回复后就没消息了,都一个月了

相关推荐

08-09 14:30
已编辑
门头沟学院 前端工程师
三轮面试都在同一天一面● 自我介绍● 项目经历● 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("abc"));一面手撕没写出来,不知道是不是我三面挂的原因~#24届软开秋招面试经验大赏##第一次面试##我发现了面试通关密码##如何判断面试是否凉了##你的秋招进展怎么样了##滴滴#
点赞 评论 收藏
分享
牛客网
牛客企业服务