字节 / 前端 / 一面+二面 / 凉凉

字节跳动

面试情况:一面通过

面试时长:70分钟

面试官态度: ★★★★★★(都说字节面试体验好:)

面试感受:

1、用的牛客编辑器,难受,要多联系

2、写算法一定要理清思路再写!!!

3、多刷题

字节 一面8.9

开场

  1. 自我介绍
  2. 没去实习是吧,你这个项目是个人的还是团队or学校的?

项目(简历写什么就会问什么,一定要熟悉!熟悉!熟悉!自己简历)

  1. 无感知刷新令牌怎么实现
  2. 缓存存在哪,缓存生命周期
  3. 怎么实现登录的,账号密码/原生
  4. 用过express吗(面试官想问koa和express区别,但是我不会express,就简单说了koa特性)
  5. 你刚才提到错误处理,你是怎么封装的?
  6. 错误处理用的什么判别,statusCode吗?

八股

  1. CSS经常写吗?(我基本只会flex,哈哈哈)
  2. flex三个值,flex-basis的值说一说
  3. 1px横线
  4. array判断方法
  5. typeof 判断数组返回什么,判断null呢?
  6. 说说Symbol,应用场景主要是哪?

手写

  • 正则,实现trim

  • 算法:求"对象"深度

    如如果"对象"是普通值,返回1,如果"对象"是引用类型,返回2,如果"对象"内为引用类型,且包含其他引用类型,+1并返回

    案例:

    //例1
    1 => 1
    //例2
    [1, 2, 3] => 2
    //例3
    {name: 'abc'} => 2
    //例4
    {
     name: 'abc',
     key: {
         name2: 'cba'
     }
    }   =>3
    //例5
    [1, 2[2, 3], 1] => 3
  • 反问

    • 表现

    • 学习建议

    • 面试官:为什么不问问业务?

      我:我这算法没撕好,感觉凉了!

      面试官:emm...确实纠结,再来一题,愿意吗?

      我:好呀好呀!

  • 算法:给Array增加一个reader方法,实现以下功能

    Array.prototype.reader() = function () {}
    
    let arr = [1, 2, 3, 4, 5];
    let obj = arr.reader();
    obj.read(1) //[1]
    obj.read(1) //[2]
    obj.read(3) //[3,4,5]
    obj.read(1) //null
    console.log(arr); //[1, 2, 3, 4, 5]

字节二面 8.16

面试情况:二面挂

面试时长:54分钟

面试官态度: ★★★★★

面试感受:

1、我是算法菜鸡,算法菜鸡,算法菜鸡

2、我计算机基础垃圾,计算机基础垃圾,计算机基础垃圾

开场

  1. 自我介绍
  2. 为什么选择前端
  3. 为什么不读计算机研究生
  4. 怎么学习前端
  5. JS编程方式
  6. 除了函数编程还有什么?
  7. 什么是函数式编程
  8. 函数是一等公民是什么意思,相对于JAVA区别
  9. 高阶函数了解吗?纯函数了解吗?
  10. 前端领域新技术了解哪些?
  11. 计网、操作系统、组成原理了解过吗?

计算机基础

  1. 进程和线程
  2. TCP和UDP
  3. TCP怎么保证可靠传输
  4. 长连接、短连接
  5. 如何断开长连接
  6. 当有很长数据的时候,服务端怎么确定实体结束位置?
  7. 了解popelining吗?它基于短连接这个做了哪些优化?
  8. http2介绍一下
  9. http2多路复用和HTTP1.1 keep-alive有什么关系
  10. 除了serve push还有其他的服务端主动和客户端联系的方式吗?
  11. 介绍下websocket

JS基础

  • 介绍下ES6,自己用过哪些?
  • const定义数组,还能push元素吗?为什么?
  • 如何设计一个Map?了解过JAVA的hashMap吗?
  • 说说Promise的catch和then的第二个参数区别
  • then方法success回调发生异常,能在catch捕获吗?then的第二个参数,reject方法能捕获吗?

算法(题目是英文)

  1. 实现lazman接口

    LazyMan(name:string,logFn:(log:string)=>void)
    
    //实现
    LazyMan('Jack',console.log)//Hi,I'm Jack
    LazyMan('Jack',console.log).eat('apple')
    //Hi,I'm Jack 
    //eat apple
    LazyMan('Jack',console.log).sleep(10).eat('apple')
    //Hi,I'm Jack 
    //(sleep 10s)
    //eat apple
  2. 两个栈实现队列

#字节面试##字节跳动##面经#
全部评论
楼主怎么知道挂的啊 8.20面完当天就通知了吗
1 回复 分享
发布于 2021-08-22 13:19
楼主base哪里呀
点赞 回复 分享
发布于 2021-08-21 18:52
博主是校招嘛?面的哪个部门呀?
点赞 回复 分享
发布于 2021-08-23 11:10

相关推荐

昨天 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
1 16 评论
分享
牛客网
牛客企业服务