共70min讲在前面:一些实习相关的细节技术问题就不讲了,讲了意义也不大实习及其延伸遇到过最有挑战性的任务如何保证重构的质量关注重要的数据代码审查建立良好的测试覆盖率性能监测给一个具体的场景,比如白屏?你怎么通过捕获异常的方式知道页面出现了白屏使用try...catch块捕获潜在的异常,并在控制台中输出相关信息,得知哪个模块导致了页面白屏如果有异常,如何进行全局的捕获?在react和原生JS中,使用window.onerror捕获全局异常在vue中使用errorHandler 来捕获未被try...catch的全局异常是否了解单元测试,有没有写过?(聊了一下软测比赛)遇到的其他困难?Bundle包优化的过程,具体的例子八股Vue响应式原理http1.1到http2的变化(详细分析多路服用)http请求比较多的情况怎么处理合并http请求、分页加载、延迟加载等方法作用域的类型前端安全相关(攻击方式),富文本渲染到页面上有什么风险大抵是xss攻击和html注入攻击这两个方面的安全风险手撕代码// 题目1          // 给定一个正整数 n,你可以做如下操作!          // 如果 n 是偶数,则用 n/2换 n 。          // 如果n 是奇数,则可以用 n + 1或n-1替换          // 返回 n 变为 1 所需的 最小换次数。          let res = Infinity;          const dfs = (n,step) => {            if(n == 1){              res = Math.min(step, res);              return;            }            if(n % 2 == 0){              n = Math.floor(n / 2);              dfs(n, step + 1);            } else {              dfs(n - 1, step + 1);              dfs(n + 1, step + 1);            }          }          dfs(8,0);          console.log(res);// 题目2// 请实现一个JavaScript 函数,用于控制并发请求的数量。            // 该函数接收一个请求函数数组和一个最大并发数作为参数,            // 当请求函数数组中的请求函数量超过最大并发数时            // 需要等待当前请求完成后再执行后续请求。            // 函数返回一个 Promise,当所有请求都完成时,            // Promise 应该 resolve”所有请求的结果数组。      const limitConcurrency = async (requests, maxConcurrency) => {  // 书写代码        const results = []        let currentConcurrency = 0        let currentIndex = 0        async function executeRequest() {          if (currentIndex >= requests.length) {            return          }          if (currentConcurrency < maxConcurrency) {            const requestFunction = requests[currentIndex]            currentIndex++            currentConcurrency++            const result = await requestFunction()            results.push(result)            currentConcurrency--            // 继续执行下一个请求            executeRequest()          }        }        // 启动初始请求数量        while (currentConcurrency < maxConcurrency) {          executeRequest()        }        // 等待所有请求完成        while (currentIndex < requests.length) {          await new Promise(resolve => setTimeout(resolve, 100))        }        return results      }            // 示例请求函数            function request(url) {              return new Promise(resolve => {                setTimeout(() => {                  resolve(`Response from${url}`)                }, Math.random() * 1000)              })            }            const requests = [            ()=>request("https://example.com/1"),            ()=>request("https://example.com/2"),            ()=>request("https://example.com/3"),            ()=>request("https://example.com/4"),            ()=>request("https://example.com/5")          ]          limitConcurrency(requests,2).then((results) => {              console.log(results);          })反问面试流程:技术面3~4面。 加上HR面都要5面了,不愧是你,鹅技术栈和业务:做的低代码相关的,要求比较高总结问的没有很难,答的也挺一般的。但是不愧是鹅的一贯作风哦,中午1点约我面试(没给我选择机会),大中午的会议室都被小姐姐们占用去睡午觉了,我差点就找不到地方面试了,因为这个面试又睡不了午觉,我只能说,挂的好,后面又发了几次面试邀约和笔试邀约总之拒得挺爽的[发火][发火][发火]
点赞 8
评论 1
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务