腾讯云|24秋招|前端一面

70min

  • 讲在前面:一些实习相关的细节技术问题就不讲了,讲了意义也不大

实习及其延伸

  • 遇到过最有挑战性的任务
  • 如何保证重构的质量
  • 关注重要的数据
  • 代码审查
  • 建立良好的测试覆盖率
  • 性能监测
  • 给一个具体的场景,比如白屏?你怎么通过捕获异常的方式知道页面出现了白屏
  • 使用try...catch块捕获潜在的异常,并在控制台中输出相关信息,得知哪个模块导致了页面白屏
  • 如果有异常,如何进行全局的捕获?
  • 在react和原生JS中,使用window.onerror捕获全局异常
  • 在vue中使用errorHandler 来捕获未被try...catch的全局异常
  • 是否了解单元测试,有没有写过?(聊了一下软测比赛)
  • 遇到的其他困难?
  • Bundle包优化的过程,具体的例子

八股

  • Vue响应式原理
  • http1.1http2的变化(详细分析多路服用)
  • 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点约我面试(没给我选择机会),大中午的会议室都被小姐姐们占用去睡午觉了,我差点就找不到地方面试了,因为这个面试又睡不了午觉,我只能说,挂的好,后面又发了几次面试邀约和笔试邀约总之拒得挺爽的
#晒一晒我的offer##23届找工作求助阵地##如何判断面试是否凉了##如何一边实习一边秋招##腾讯#
全部评论
卧槽,大佬,一面和你同一个面试官,你已经挂了吗?三到四轮技术面也太离谱了。
2 回复 分享
发布于 2023-09-24 17:12 四川

相关推荐

WesterlyDrift:你拍完照又把选项改回去的样子真的很狼狈😤😤
点赞 评论 收藏
分享
8 20 评论
分享
牛客网
牛客企业服务