【wxg微信支付】前端实习面经(一二三面)

一面

时间:2020/03/25 11:00 45分钟

形式:腾讯面呗

  • 讲项目

  • 小程序的用户鉴权机制

    • session_id状态过期怎么办
  • 谈谈git flow

  • web安全方面你知道什么?

    • CORS,攻击者怎么攻击的
  • 跨域及解决方案

    • 你觉得为什么浏览器要有同源策略呢?
  • webpack性能优化方案

  • 两道编程题

    • 手写迭代器

    • 手写防抖

二面

时间:2020/03/29 15:00 60分钟

形式:腾讯面呗

  • 讲项目

  • flex布局

  • position属性

  • 输入url到浏览器的过程

  • js原型链

  • 问ES6的新特性(讲了很多,他挑着细问了一些)

    • var、let和const的区别

    • promise

      • promise.all 和 promise.race

      • 比如promise.all是并行的,怎么封装promise做串行处理,讲思路(晚上我试着写了下,代码在下面)

      • 怎么用promise写async/await

      • promise和setTimeout区别(想问事件循环吧)

  • cookie和session的区别

    • 浏览器禁用cookie,怎么办?(token)
  • 想问我docker(我秒说不会)

  • 算法题:topK,时间复杂度O(n)

Promise执行串行:

Promise.all虽然是并行的,但返回结果是有序的。所以面试官的思路应该是让我写一个函数:执行顺序串行,而不是只做到结果顺序有序。

思路一:完全基于promise

const sequence = function (arr) {

  let result = [], len = arr.length;

  let promises = arr.concat([() => Promise.resolve()])

  return new Promise((resolve, reject) => {

    promises.reduce(

      (prePromise, nextPromise, index) =>

        prePromise.then((data) => {

          result[index] = data;

          if(index === len) resolve(result.slice(1))

          return nextPromise();

        }),

      Promise.resolve()

    );

  });

};

思路二: async + for of

// 保证执行时串行

const sequence = function (arr) {

  let result = [];

  return new Promise((resolve, reject) => {

      (async function next(){

        for(let item of arr){

          let temp = await item();

          result.push(temp)

        }

        resolve(result);

      })()

  });

};

测试样例

const delayFn = (delay, val) => () => {

  return new Promise((resolve, reject) => {

    setTimeout(() => {

      resolve(val);

    }, delay);

  });

};

const p1 = delayFn(300, 1);

const p2 = delayFn(200, 2);

const p3 = delayFn(100, 3);

sequence([p1, p2, p3]).then(

  (res) => console.log(res),

  (rej) => console.log(rej)

); // 1 2 3

三面

时间:2020/03/31 10:00 35分钟

形式:腾讯会议

  1. vue和react的区别

  2. vue的生命周期

  3. react的生命周期

  4. MVVM和MVC相比的优势

  5. 扩展运算符了解吗

  6. 浮点数相乘,写一下代码

    function mut(num1, num2) {
    
      const numStr1 = num1.toString(),
    
        numStr2 = num2.toString();
    
      if (numStr1.indexOf(".") == -1 && numStr2.indexOf(".") == -1)
    
        return num1 * num2;
    
      const [a1, a2 = 1] = numStr1.split(".").map((item) => parseInt(item));
    
      const [b1, b2 = 1] = numStr2.split(".").map((item) => parseInt(item));
    
      let res1 = a1 * b1;
    
      let res2 = a2 * b2;
    
      let res = res1 + "." + res2;
    
      return parseFloat(res);
    
    }
    
  7. 问了一下项目

  8. KMP算法了解过吗(不会)

  9. 快排的过程?

    • 你觉得快排有什么缺点?(不稳定)

    • 快排什么情况下会O(n^2)?(每次取的 pivot 都刚好是最大或者最小的元素)

当天进hr面状态了,许愿后续都顺利~~

#实习##面经##腾讯##前端工程师#
全部评论
大佬你的三面是面委会吗
点赞 回复 分享
发布于 2021-08-19 13:31
二面算法题topk 时间复杂度on怎么做? 快速选择还是中位数
点赞 回复 分享
发布于 2021-04-13 22:27

相关推荐

09-20 16:00
门头沟学院 Java
0826投递0904一面1. 多线程异步手撕2. 自我介绍。3. 用户输入域名访问部署在公网环境的网站,从输入域名那一刻起,整个访问链路是怎样的,最终怎样连接到目标机器?4. 当网站访问人数增多,之前的单机部署无法满足需求,要将其变为集群部署,这个过程的架构是怎样的?5. 集群部署中,有A、B、C三台机器,不同访问可能到达不同机器,如何维持用户登录状态,保证会话状态一直在线?6. 按相同请求(如同一客户端IP)映射到同一台服务器的负载均衡策略,除了可能导致负载不均衡,在功能实现稳定性方面还有什么可能的问题?7. HTTP和HTTPS有什么样的差别?8. 在HTTPS中,证书的下发流程是怎样的?证书涉及的公钥、私钥以及CA(权威机构)之间是什么关系?9. 在多线程使用HashMap的场景下,如何避免线程安全问题?有哪些其他方案?10. 平时讨论的线程安全一般指什么问题?请从Java内存模型的角度讲解一下。11. 线程执行简单的i++操作,为什么会存在线程不安全问题?12. MySQL中,LEFT JOIN(左连接)和INNER JOIN(内连接)有什么样的区别?比如A表和B表通过ID关联,A表中存在的ID在B表中没有时,两种连接方式的查询结果会有什么不同?13. 平时使用数据库时,有哪些性能优化的经验?14. 当数据量级达到一定规模,即使加了索引查询还是比较慢,除了加索引还有其他什么优化方案?15. 当MySQL因流量过大导致QPS(每秒查询率)跟不上时,有哪些常见的解决做法?16. 在数据库和请求之间加缓存(如Redis)后,由于缓存存在读和写操作,可能出现缓存与数据库数据不一致的情况,如何尽可能保证读取的缓存数据与数据库真实数据一致?17. 数据库读写分离的设计思路大概是怎样的?18. 数据库主从同步的过程是怎样的?比如MySQL中是利用哪些能力实现主从数据同步的?19. 你对RPC(分布式远程调用)技术有了解吗?20. 假如通过HTTP协议实现远程调用代码(如调用远程机器上某一个类的方法),让你设计这个远程调用过程,你会怎么设计?21. 你之前用到AI相关技术(包括检测)和MCP,能讲一下当时是怎么搭建相关系统的吗?实现了什么样的功能?22. 大模型调用外部服务时,Function Call(函数调用)和MCP之间有什么样的差异性?23. 在学习和实践过程中,你觉得哪一件事情挑战很大?请说一下这件事以及你应对挑战的过程。0909二面1. 自我介绍?2、项目内容3. 不同MCP工具之间有差异,资源消耗也不同,在这个过程中怎么保证每一个工具的稳定性?4、实习期间,你觉得哪一件事情做得最满意、挺不错的?5. 海量数据存储常常用到布隆过滤器,你可以解释一下布隆过滤器的原理吗?6. 如果一个接口响应超时,前台接口,那么你会怎么排查7. 出一道概率题:有0到5六个数字,能组成多少个四位偶数?8. 如果需要从布隆过滤器里面删除一个数据,该怎么实现?9. 你自己觉得你最大的缺点或者不足是什么?10. 你项目中涉及到Kafka的高性能相关内容,能解释一下Kafka为什么可以达到这么高的吞吐量吗?核心的设计是什么让它实现了这样的能力?0910HR面1. 自我介绍2. 高考分数,高考数学分数3. 0到100的数字中有多少个84. 比如3点55分,时针跟分针的夹角是多少,数学公式应该怎么写5. 假设有两个桶,一个能装3升水,一个能装5升水,如何用它们量出4升水?说出两种方法6、问实习经历7. 你对大模型的理解有多少?8. 在项目里了解到关于中间件(如Redis)的哪些知识?9. Redis是什么?10. 一面的手撕做得不好,为什么11. 你对自己的技术能力打多少分(十分制)?12. 你觉得实习那边的工作氛围有什么可以改进的地方,或者你理想中的工作氛围是什么样的?13. 你未来的规划是什么?分两个阶段,一个是到毕业,还有一个是毕业之后一到三年。14. 你了解过去年校招的薪资行情吗?你期望的薪资范围大概是多少?15. 如果我们给你发了意向书,你会如何处理其他公司的面试流程?比如是否会继续走其他公司的流程,或者不再投其他公司?16. 你参加比赛时担任队长,能讲一下你在比赛当中的分工吗?一部分是你在里面发挥的作用是什么(偏结果或内容层面),另一部分是你作为队长发挥最大的价值是什么?17. 身边的人是怎么评价你的?对你最多的评价是什么?18. 你的缺点是什么?0911:通知我需要补个笔试,说一面手撕写得不好,下午补了个笔试面,写了一道排序和一道多线程的题0912:流程结束,告知排序挂了
点赞 评论 收藏
分享
09-18 15:54
已编辑
门头沟学院 Java
查看11道真题和解析
点赞 评论 收藏
分享
评论
5
40
分享

创作者周榜

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