小前端总结的秋招面筋经验,供大家参考.

最近有时间,决定把之前秋招时的面试经历分享出来,回馈牛客,希望能够帮助到大家

个人情况

  • 学历:双非本科
  • 岗位:前端研发
  • 实习经历:一段

字节跳动

部门:火山

日期: 9月

一面 30min

  • 聊了聊实习期间负责的事情.
  • http不同版本的特点
  • http缓存的原理,问的很细,建议相关的http字段和优先级着重看一看
  • vue2.0和3.0的区别?优势?
  • 双向绑定的原理
  • xss和crsf的区别,如何防范?
  • 算法1
    1. 跳台阶-一步跳1或2个台阶,问跳n阶有多少种方法?
    2. 手写代码多种方法
    3. 问时间复杂度和空间复杂度
  • 算法2
    1.跳台阶-一步跳[1,n]个台阶,问跳n阶有多少种方法?
    2.问时间和空间复杂度

    二面 50min

  • 同样聊了聊实习经历
  • http缓存字段优先级(重要)
  • TCP的拥塞控制
  • 数据库的索引类型
  • css选择器的优先级
  • 如何实现一个屏幕宽度的50%的正方体?
  • 对es6中的Proxy的了解
  • 算法题
    描述: 找出数组arr中n(1 <= n <= arr.length)个数的所有组合,只进行组合不进行排列.
    //例1
    input: arr = [1,2,3],n = 2
    output: [[1,2],[2,3],[1,3]]
    //例2
    input: arr = [1,2,3],n = 3
    output: [[1,2,3]]
    //例3
    input: arr = [a,b,c,d],n = 3
    output:[[a,b,c],[a,b,d],[a,c,d],[b,c,d]]
  • 实现一个发布订阅的类,大家应该都熟吧

    三面 30min

  • 自我介绍,实习期间的事情
  • 实习中有挑战的事情
  • 小程序的原理与H5的区别
  • 小程序的性能优化
  • 浏览器的渲染过程
  • js的继承方式
  • js中的事件循环机制,微任务和宏任务的区别
  • 算法题
    描述 找到二叉树中是否有一条路径相加等于一个target
    //例如
    in:1
      / \
     2   3
    /\  /\
    4 5 6 7,target: 11
    output: true
    解释: 1->3->7 相加等于11
    in: target = 12
    ouput: false
    解释: 无法找到相加和等于12的路径

    hr面 30min

  • 自我介绍,实习经历
  • 实习带给你的成长
  • 为什么不考研
  • 在学校的学习成绩
  • 如何看待加班
  • 聊了聊字节的工作强度,说相比百度肯定节奏快
  • 问了城市的选择啥的

    美团

    日期: 10月

    一面60 min

  • 自我介绍,聊实习经历
  • 算法题
  1. 括号匹配
  2. 将二叉树的所有节点拆散
    //例如
    input:  1
           / \
          2   3
         /\   /\
        4  5 6  7
    output: [1,2,3,4,5,6,7]
  • 写一个节流的函数
  • http的缓存原理
  • 编写vue通用组件的思路?
  • 问项目
  • 介绍node中的express框架
  • 用过axios的拦截器干了什么
  • node中间件的原理
  • 使用过的node中间件
  • http请求和相应的全过程
  • fetch和ajax的使用对比
  • node端和浏览器端的差异分析

二面 40min

  • 自我介绍
  • 问毕业时间以及城市的选择.
  • 问项目
  • websocket和http的对比
  • websocket是如何保证通信可靠? 基于tcp?
  • 如何处理网络中的错误请求?
  • 浏览器的缓存的使用
  • localStorage和sessionStorage的对比
  • 项目中如何保持浏览器端和服务端的通信状态?
  • cookie和token的对比
  • cookie的安全性如何保障?
  • token存哪里比较合适?
  • 最后一道简单题目,合并两个有序数组并去重
    可以使用多种方法解决
    input: arr1 = [0,1,4,5,7,7,9],arr2 = [0,2,3,4,7,9]
    output:[0,1,2,3,4,5,7,9]

hr面 25min

  • 自我介绍
  • 实习经历
  • 实习中扮演的角色
  • 遇到的难题如何解决
  • 实习的收获
  • 为什么不转正
  • 做的事情中有特别想改进的点
  • 如果有多个任务在手,如何高效的处理?
  • 希望去北京还是上海?
  • 如何选择offer?
  • 反问

去哪儿

日期: 10月

  • 自我介绍
  • 实习经历
  • js打印看输出
    1.
      情况一:
      Person.prototype.a = 1;
      function Person() {
      }
      let p1 = new Person();
      Person.prototype = {
          a: 2
      };
      let p2 = new Person();
      console.log(p1.a);//1
      console.log(p2.a);//2
     情况二:
      Person.prototype.a = 1;
      function Person() {
      }
      let p1 = new Person();
      Person.prototype.a = 2;
      let p2 = new Person();
      console.log(p1.a);//2
      console.log(p2.a);//2
    2.
      Person.b = 'b';
      Person.prototype.a = 'a';
      function Person() {
      }
      let p1 = new Person();
      console.log(p1.a);//a
      console.log(p1.b);//undefined
  • 实现对一个接口进行请求
    1.每隔1000ms请求一次
    2.当res的data返回competed字段为true的时候停止.
    function apiIntervalCall(url) {
          const timer = null,data = [];
          return new Promise((resolve,reject)=>{
              timer = setInterval(()=>{
                  data.push(res.data);
                  axios.get(url).then((res)=>{
                      if(res.data.competed === true) {
                          resolve(data);
                          clearInterval(timer);
                      }
                  },err=>{
                      reject(err);
                  })
              },1000)
          });
      } 
  • 算法
    描述 有序数组中插入一个数字,使得数组任然有序.
    例如
    input: arr = [0,0,1,5,7,8,9], num = 4;
    ouput: arr = [0,0,1,4,5,7,8,9];
  • 实习中遇到的难以解决的问题
  • 自己在项目中承担的角色

本人的分享就到这了,祝愿各位牛友offer多多.

#秋招总结##字节跳动##面试题目#
全部评论
3个都拿offer嘛
点赞 回复
分享
发布于 2021-12-18 20:00
缓存字段的优先级可是 Cache-control > Expires > Etag > Last-modified?
点赞 回复
分享
发布于 2021-12-19 07:48
联想
校招火热招聘中
官网直投

相关推荐

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