首页 > 【二次更新,已转正】字节跳动实习前端面经 已收到offer
头像
日王
编辑于 2021-03-29 14:03
+ 关注

【二次更新,已转正】字节跳动实习前端面经 已收到offer


2021-03-29
大家好俺回来更新了!!
书接上回,在北漂四个月多后,元旦前夕,本弱鸡终于成功转正,给的offer(28k那档)也特别满意 所以最后还是留下来 快乐的 给字节卖命

总的来说实习经历还是比较nice的,400/天,包三餐下午茶,1500/月的房补,好多健身房都是合作的可以白嫖。mentor虽然很忙但是也给了很多建议和指导(以及其他同事也都会热情的帮忙出方案hhh),同事们都很年轻好说话。不过,忙起来的时候也是非常忙了

最后,欢迎大家投递简历~

字节跳动校招内推码: 5XGMKFD
投递链接: https://jobs.toutiao.com/s/eYNdYYp

内推进展可以加我qq:809555918 帮忙查询 绝对舔狗式服务
投前端方向的同学欢迎一起交流~


2020-08

ps:经过朋友科普才知道提前批和实习的差别,hr说我的面试表现属于可过可不过的那种,所以给了实习的offer(淦,当初应该多练练算法的)。我这个不算校招,是实习。已经改了标题~


基本情况

楼主是 21 届、男生,来自韩庄乡不知名 211 的软件工程专业。

之前三月份面过一次字节试试水,结果一面就挂了。四月份五月份的时候又投过简历不过没有通过筛选。后来在六月二十七号左右收到 hr 小姐姐的电话,把我捞起来进行面试了。因为后面几天有两门课要结课答辩,所以面试时间往后拖了些日子安排在了七月七号。

七月七号下午五点开始面试,当天晚上八点半第三面结束,第二天 hr 面。

七月十二号下午收到 hr 电话、拿到 offer

确定七月二十号入职,base北京中航广场

一面

面试官是个小帅哥,贼像楼主一同学的加帅版,所以感觉很亲切 hhhhh。

一面面试体验良好,小帅哥全程微笑

下面是问的问题:

  • 自我介绍

  • [JavaScript] 关于基本数据类型

    先回答了在目前最新的 ES 中有八种,然后打字列出来(这里楼主就列出来了七种,把布尔给忘了,不过面试官没有硬揪,被楼主混过去了 hhh)

    面试官让详细说一下 symbol 类型,于是说了一下作用、可能的 es5 实现方式。

  • [css] css 实现一个自适应搜索框,输入框部分宽度自适应,搜索按钮宽度固定

    楼主用 float 写了个版本,后面面试官提到用 flex,于是用 flex 布局再写一个版本。

    感觉这个问题回答的比较差,楼主写的有些问题。

  • [JavaScript] 老生常谈的 this 指向以及 call、apply、bind

    看代码讲输出结果,比较简单

    var a = {
    
      name: "bytedance",
    
      func: function () {
    
        console.log(this.name);
    
      },
    
    };
    
    a.func();
    
    var fun1 = a.fun;
    
    fun1();
    
    a.func.call({ name: "toutiao" });
    

    然后讲一下 call、apply、bind 的作用以及不同。

    这里楼主还往 js 执行上下文的方向深入扯了扯,应该是不错的加分项。

  • [mvvm]好处、解释下这个模式、大致说下实现

    楼主简历里写了实现过简单的 mvvm 框架,于是问了这一块的东西

  • [看楼主之前的项目问了些问题]

    一个企业门户网站的项目,让楼主讲一下后台管理系统的登录、鉴权模块实现:类似 jwt 的方式,然后在 axios 拦截器进行鉴权。

  • [cookie、localStorage、sessionStorage] 作用、区别

    问到这个问题是因为上面一问中 jwt 的 token 楼主是存在 localStorage 而不是 cookie,面试官问了下为什么不存在 cookie 中。答:其实楼主也忘了,不过楼主往防范 csrf 攻击的方向详细扯了扯。

  • [cookie] 有哪些字段、什么用

    楼主还详细扯了扯 cookie 的来源、作用、不足等等。

  • [跨域]

    • 为什么要跨域

    • 跨域有哪些方式

    • jsonp 详细讲了一下

    • 跨域资源共享详细讲一下

      讲了一下浏览器、服务器的处理流程

  • [https]

    这个问题楼主详细扯了扯 ,包括

    • 整个 http 的流程

    • https 是怎么保证传输数据包的安全

    • 证书里都有什么

    • 建立 HTTP 链接时的非对称加密,建立链接后传输数据的对称加密

    • 数字签名

    • 好像还问了些 https 相关的东西,不大记得了

  • [算法题]版本号排序

    var versions = ["1.45.0", "1.5", "6", "3.3.3.3.3.3.3"];
    

    要排序成

    var sorted = ["1.5", "1.45.0", "3.3.3.3.3.3", "6"];
    

    挺简单的,大致思路说出来就开始写代码。写代码的时候楼主拉垮,面试官小帅哥多次指导。 最后还是没有跑成功 hhhhh

  • 还有什么想问的

    答:您看我还有机会吗?

    开了个玩笑,小哥被我震住了 瑟瑟发抖 hhhh

二面

五六分钟后开始二面

二面面试官一开始有些严肃,不过后面有个地方他迷糊了从此绷不住严肃人设开始笑眯眯 hhh

二面面试体验良好

下面是问的问题:

  • [引用类型、值类型]

    楼主从内存的角度来分析他们的差别,面试官表示满意

  • [深拷贝]

    从上一题延伸出来的,实现深拷贝函数。楼主有些条件没有考虑到,面试官进行了提示,很棒

  • [闭包] 闭包是什么、写一下、继续扯

    • 先说了下闭包是什么、用在哪、缺点

    • 然后写一个闭包的例子

      //楼主当时写的
      
      function func() {
      
        var aaa = "abc";
      
        return function () {
      
          console.log(aaa);
      
        };
      
      }
      
    • 面试官问为什么里面的 function 能取到变量 aaa

      楼主扯:垃圾回收、作用域链

    • v8 的垃圾回收机制

  • 由上个问题延伸,继续探讨执行上下文相关的东西

    (这里我提到了一个面试官犯迷糊的地方,从此严肃人设绷不住了 hhh)

    楼主进行扯淡:之前看过一篇外国人的文章,里面贴了 c++实现 js 的执行上下文的结构体,结构体里面有变量存指向上一层作用域的指针、有变量存当前作用域等等巴拉巴拉,基本上是那篇文章的内容,关于执行上下文的。

  • a=123var a=123,这两种创建变量的方式有什么不同

    除了a=123会创建全局的变量外,还多了个沿着作用域链查找的过程。

  • let var const区别

    这里面试官还问了个暂时性锁区,楼主表示不知道,面试官举了个例子:

    function func() {
    
      console.log(a);
    
      let a = 2;
    
    }
    
    func();
    
  • 看楼主之前的项目

    不过没有问具体技术问题,问了一些关于一个跟同学一起弄的二手交易小程序的运营情况

  • [跨域]

    • 为什么要跨域

    • 跨域有哪些方式

    • jsonp 详细讲了一下

    • 跨域资源共享详细讲了一下

      讲了一下浏览器、服务器的处理流程

    • webpack 的 devserver 是怎么跨域的

  • apply call bind

    同一面

  • 登录鉴权

    同一面

  • cookie/localStorage

    同一面(连问几个一样的问题,楼主窃喜)

  • 算法题

    给定一个数组,元素包含:一堆负数 + 一堆 0 + 一堆正数,求最后一个出现的负数和第一个出现的正数的位置,从 1 开始计数。要求时间复杂度为 O(logN)。例子:数组 [-1,-2,0,0,0,0,4,5] 最后一个负数出现的位置为 2,第一个正数出现的位置为 7。

    用二分 ,复杂度 O(logn)

    大致说了思路就开始写了,楼主算法题继续拉胯,感谢面试官进行引导提示(最后还是没跑成功)

  • 有什么想问的

    问了些技术栈、产品和做的东西、可不可以做一些后台的内容等等

三面

休息了几分钟开始三面

三面面试官是个利落的小姐姐,不过当时已经七点半了,所以小姐姐有些急

下面是问的问题:

  • [JavaScript]typeof操作符

    • 用过吗

    • 什么作用

    • typeof 一个数组什么结果

    • 那怎么判断是否是数组

  • [JavaScript]instanceof操作符

    • 用过吗

    • 什么作用

      这里还讲了讲原型对象和原型链

    • 给了两个例子,说结果(例子忘记了、挺简单的)

  • 实现一下 instanceof

    这里略拉垮,__proto__给写成_proto_了,死活报错,还好面试官提示了下。

  • [css]position

    有哪些字段,什么作用。这里楼主忘记了默认值是啥,后面面试官提示了。

  • 怎么判断空对象

    说了三种:

    • for of 循环,加个标记变量
      经评论区提醒:应该是用for in循环

    • object.keys 判断返回的数组长度

    • 转成 json 格式的字符串、判断是否等于"{}"

  • 算法题

    Merge 两个有序的链表

    输入:node1, node2

    输出:node

    挺简单,但是楼主算法题继续拉胯,在面试官小姐姐提示下写出大致思路,然后小姐姐宣布就结束了面试

  • 基本情况

    什么时候能实习、实习到什么时候等等

hr 面

就问了下可以来实习的时间、能实习到什么时候、未来有什么打算,说面试官们讨论一下,然后走下流程,五个工作日内给结果。

总结

总的来说问题比较简单,JavaScript 的问题会比较多,每一轮会有 1-2 个需要写代码的题目。然后要多注意下算法,就算是前端方向也会问到算法相关内容。

一点小经验

  • 简历上别罗列太多技能点

  • 回答问题的时候要往自己熟悉的地方上扯 面试官经常会深入问你提到的东西

  • 不会的问题别支支吾吾不懂装懂,直接说不大熟悉,请面试官提示一下,再不行就提出下一题。

  • 就算远程视频面试也坐端正些,千万别抖脚

有什么问题欢迎大家留言交流,顺便求租房群,房租真的好贵o.o

以上

全部评论

(20) 回帖
加载中...
话题 回帖

推荐话题

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐