oppo-前端-提前批一二面,HR面秒挂(ke tui!)

一面 2022/7/28 30min

  • 自我介绍
  • 项目
  • 用ts有啥好处
  • 有没有了解近一两年的es6语法?
    • 说了没有去了解哪个语法在哪个时间点出的。说了es6语法
  • Map和weakmap区别
  • 跨域解决方法,为什么会出现跨域
  • 如何写一个工具获取网络请求的时间,不改动其他业务代码。比如使用的是最简单的xhr请求
    // 重写 xhr ,获取请求响应时间
    const trackerXHR = () => {
      // 拿到 XMLHttpRequest
      let XMLHttpRequest = window.XMLHttpRequest
      // 保存原有的open方法
      let XMLOriginOpen = XMLHttpRequest.prototype.open
      // 重写 open 方法 目的是为了保存 methods, url 这个参数的值 用于埋点上报
      // 不能用箭头函数
      // 1. 箭头函数没有 arguments
      // 2. 箭头函数会改变指向 我们需要将 this指向 XMLHttpRequest
      // 3. 箭头函数this绑定的是上一层的this
      XMLHttpRequest.prototype.open = function (methods, url, async) {
        // 将值挂在XMLHttpRequest.logData 中
        this.logData = {
          methods,
          url
        }
        // 执行原有的open方法
        return XMLOriginOpen.apply(this, arguments)
      }
      // 保留原有的send方法
      let XMLOriginSend = XMLHttpRequest.prototype.send
      XMLHttpRequest.prototype.send = function (request) {
        // 重写load、error、abort方法
        // 为什么不修改load、error、abort的原型了呢
        // 因为用户有时候可能不会去调用 load、error、abort 方法,去执行他们的回调
        // 比如 xhr.load、xhr.error、xhr.abort 等等
        // 如果不执行回调 就无法达成上报的目的 但是 send 是一定会执行的
        // 所以放到 send 里 去监听
        const startTime = new Date() // 计算接口的duration, send 时记录请求时刻
        const handle = (eventType) => {
          return () => {
            // 上报 status 不为 0 的错误
            if (
              (eventType === 'load' && this.response.status !== 0) ||
              eventType === 'error' ||
              eventType === 'abort'
            ) {
              const duration = new Date() - startTime
              const log = {
                duration,
                status: this.status,
                statusText: this.statusText,
                url: this.responseURL,
                method: this.logData.methods,
                params: request,
                response: JSON.stringify(this.response || ''),
                type: 'xhr',
                eventType
              }
              // 拿到之后去上报
              console.log(log, 'log----')
            }
          }
        }
        this.addEventListener('load', handle('load'), false)
        this.addEventListener('error', handle('error'), false)
        this.addEventListener('abort', handle('abort'), false)
        return XMLOriginSend.apply(this, arguments)
      }
    }
    trackerXHR()
  • 写一个函数 getValue(a, 'a.b.c.d.e.f', 1),按传的字符串获取所传对象中的值,若没有则返回默认值。其实就是写个lodash get函数
    • 只需要说思路,不用手撕
    • 面试官只给了 'a.b.c.d.e.f' 这个例子,由于前两天抱佛脚看过,所以我扩展了 'a[0].b.c','a.0.b.c' 两种情况
      // path 有三种形式'a[0].b.c','a.0.b.c',['a','0','b','c']
      function myLoadshGet(obj, path, defaultValue) {
      if (obj === undefined || obj === null || typeof obj !== 'object') {
        return defaultValue;
      }
      // 把 path 转成数组形式
      let parsePath = Array.isArray(path) ? path : path.replace(/\[/g, '.').replace(/\]/g, '').split('.');
      return parsePath.reduce((pre, cur) => {
        if (cur >= '0' && cur <= '9') {
            cur = Number(cur);
        }
         return pre[cur];
      }, obj) || defaultValue;
      }
    • 面试官提醒了忘记做类型判断后补了判断是否为对象,于是有了下面这题
  • 如何判断数据类型
  • css写一个居中的圆
  • 这个圆要让他隔段时间转一圈怎么用css实现
    • 说了css动画不太熟,后面用js实现了
  • 性能优化的指标
    • 说了白屏时间和首屏时间,这个实在了解的不多
    • 面试官说下来可以了解一下 lighthouse Chrome插件
  • 反问

二面 2022/8/3 40min

  • 自我介绍
  • vue diff算法
  • 实习用的技术战,react版本
  • react 印象最深的有哪些
  • vue2和vue3的区别
  • 对ts的理解,有什么优势
  • 实习间有没有自己打包项目上线
    • 答了没有,公司的流程都很方便。补上了之前自己上线的小程序的流程
  • webpack的配置
    • 答了entry、output、loader、plugin(webpack真不会)
  • 有没有自己写过 plugin
    • 没有,答了怎么写一个plugin,plugin其实就是一个class,这个class里面必须有一个apply函数
  • webpack代码优化有了解吗(为啥一直webpack T T)
  • 项目node用什么框架
  • 数据库使用了字节的轻服务,介绍一下轻服务
  • 实习的项目有什么困难的点,这个项目目前还有做吗
  • 讲一下实习项目
  • 上面遇到的那个困难怎么解决的
  • 简历上的另一个项目是怎么合作的
  • 简历上的小程序介绍一下
  • 讲一下项目用到的jwt的流程
    • 直接讲了小程序项目里的登陆逻辑
  • 平时会关注哪些技术,会不会按专题之类的去学习(面向面经学习hhh)
  • 平时开发怎么调试
    • console.log一把梭!!
  • 用过什么辅助开发的工具
    • f12。。。hhhh
  • 写node的时候如果上线了接口出错怎么查找(大概是这个意思,没太理解)
  • 有没做过大型的性能优化(。。。)
  • 讲一下http 响应状态码
  • 502 和 504 的区别
    • 不会,没了解504
  • 有没有了解flutter(。。。)
  • 感兴趣的方向
  • 反问

HR面 2022/8/7 15min

  • 自我介绍
  • 通过什么了解oppo的
  • 为什么不继续深造
  • 第一份工作最想收获到什么
  • 实习给你带来了什么
  • 公司什么是不可以接受的
  • 对加班的看法,你觉得什么是无效的加班
  • 反问

15min就完事确实有点没想到,咋感觉在刷kpi,别和暑假实习一样直接秒挂。。。
。。。。。直接秒挂,第二次hr面秒挂了,oppo属实恶心人🤮

#OPPO提前批##前端##提前批##2023校招#
全部评论
怎么看有没有秒挂?
点赞 回复 分享
发布于 2023-08-03 14:52 湖南
我也HR秒挂,我还提前查了好多资料,所有问题都行云流水。 秒挂!!! 他问我有没有别的offer,我说有,不知道是不是这个凉了。。 哎
点赞 回复 分享
发布于 2022-08-12 17:54

相关推荐

03-12 09:57
软件测试
程序员小白条:1)确定测试,测开的方向,技术栈不能写这么少 2)课程凑数的,不是99,100分没必要写 3)实习经历这块要有突出的不是劳动性质的亮点,自己设计的什么方案,什么自动化?什么提效工具?不是一些边角料,人云亦云的东西,没吸引力 4) 校园经历纯没用 5)尽量少写减分项
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
4
29
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
10551次浏览 93人参与
# 你的实习产出是真实的还是包装的? #
1855次浏览 42人参与
# 巨人网络春招 #
11324次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7568次浏览 43人参与
# 简历第一个项目做什么 #
31666次浏览 335人参与
# 重来一次,我还会选择这个专业吗 #
433448次浏览 3926人参与
# 米连集团26产品管培生项目 #
5940次浏览 216人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187111次浏览 1122人参与
# 牛客AI文生图 #
21423次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152352次浏览 888人参与
# 研究所笔面经互助 #
118899次浏览 577人参与
# 简历中的项目经历要怎么写? #
310220次浏览 4210人参与
# AI时代,哪些岗位最容易被淘汰 #
63649次浏览 823人参与
# 面试紧张时你会有什么表现? #
30506次浏览 188人参与
# 你今年的平均薪资是多少? #
213077次浏览 1039人参与
# 你怎么看待AI面试 #
180039次浏览 1255人参与
# 高学历就一定能找到好工作吗? #
64324次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76488次浏览 374人参与
# 我的求职精神状态 #
448046次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363380次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160641次浏览 1111人参与
# 校招笔试 #
470896次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务