腾讯微信支付一面

3/6投递,3/15一面,面试时长一个半小时左右,已通过

  • 自我介绍

    • 对我们的项目很感兴趣,问了项目的产品设计,然后问我在项目里面具体负责的工作
  • 然后开始代码题

    • 先问我有没有了解过深拷贝,深拷贝的概念
      • 然后问我怎么实现,然后答了判断属性,如果是对象就递归,不是对象就直接拷贝。
      • 然后问怎么处理循环引用
      • 答了用一个多余的标记位标记这个对象是否被拷贝过
      • 然后就出了一道深拷贝
    • 问防抖和节流的概念
      • 然后出了一道节流
    • 然后问有没有了解过ts
      • 然后出了一道把对象里面所有的属性名由下划线命名改为驼峰命名(应该用ts的,但是不太会就用了js + 正则实现)
      • @张运筹 蹲一个ts实现,不是很会(x)

    • 出了一道ts类型守卫
  • 代码题半小时要写完,第一题的循环引用的处理有点卡住了,代码有一点小问题

  • 第三题忘记考虑属性值也是对象的递归调用问题,问了一下怎么改,就过了

  • 第四题没咋问

  • 然后开始对着简历问八股

    • 面了一个半小时,东西有点多记不太清楚了,顺序不一定对

    • 问了项目里面如何使用git,答了git的branch规范和commit message规范,然后答了代码仓库的架构,答了cr pr。

    • 问了http建立连接的过程,tcp怎么到http(答偏了

    • 问了http3.0和2.0的区别,只知道用了udp,比tcp快

    • 问了https的连接建立过程(答的不算太好,里面具体的数据交换有点遗忘,最后只概括成了先验证证书然后基于非对称加密建立连接)

    • 问了网络攻击方式

    • 答了SSO和跨域里面遇到的cookie和跨站脚本攻击

    • 问了cookie具体在浏览器里是怎么保存和操作的

    • 然后问了跨域的概念,问了cookie和跨域的联系

    • 问了SWR怎么用的,具体都有什么功能

    • 有没有了解过node.js

    • 有没有了解过mysql

    • 问了react里面比较熟悉的核心机制,答了虚拟dom

    • 问了虚拟dom的优势,答了性能会好一些,然后面试官举了反例,只简单的修改某个dom的一个简单的文本属性的话性能应该比虚拟dom更快,讨论了一下。

    • 看我写的交互相关多一些,问了业务代码里面的遇到的问题

    • 然后让我展开说说遇到的交互上的问题,怎么解决的

    • 答了Silder的编写过程遇到的问题和迭代过程,包括三大点,答的还不错

  • 反问

    • 实习生培养计划