首页 > 字节跳动前端日常实习面经(一二三面,已OC)
头像
rentu
编辑于 2021-01-20 19:54
+ 关注

字节跳动前端日常实习面经(一二三面,已OC)


西安某211铁fw,有点算法竞赛基础,自学前端大半年,投的字节跳动国际化

30号内推,31号约一面,一二面是6号,三面是11号,今天18号hr打电话OC了

一面(50min)

  • 自我介绍

    • 大一大二打比赛

    • 大三开始学习前端

  • 项目介绍

    • 外包小程序

      • 用的Taro,解决了什么问题

      • 用的TS,稍微解释了下TS,

        • 接口类型和type有什么区别

          • 有限制,泛型,更多可选

    • 项目管理系统

      • 主要 做了什么

      • 为什么要用uni-app

        • 多端需求

        • 之前项目开发就是使用的uni-app

  • 跨域

    • 概念

    • 解决方法

      • 后端

        • 特定的服务端

        • 插件做了什么

      • 前端:JSONP

      • CORS(卡住)

        • 跨域请求的标记(这里应该是希望我回答加上orgin和allow-control字段的)

        • 域名

  • CSS 左中右三栏布局(嘴上说了说,但是具体属性记不太清,这就去恶补CSS)

    • 绝对定位

    • 移动 100% 固定宽度 使用 margin-left

    • table left 从 0 开始 , 中间的跟随left开始

    • transform移动

  • flex

    • 介绍

    • 实现原生三栏布局

    • 手写了一下

  • 回流/重绘

    • 回流/重绘简单介绍

    • 自问自答:如何避免这种情况,table的绘制时长

    • 减少回流/重绘的触发

      • 虚拟DOM,统一绘制

    • 获取offsettop是否会触发回流和重绘(不会)

  • 进程/线程的区别

    • 调度/资源单元

    • 进程创建线程 创建PCB保存资源和内容

    • 线程无法申请资源

  • JS线程是单线程还是多线程

    • 单线程(即答)

    • Q:如何实现异步

    • A:回调函数,promise,async (async会用但是还是不是很熟悉)

  • 事件循环

    • 函数栈

    • 任务队列(宏队列,微队列)

    • 细节还是不是很清楚

    • 读代码

  • 算法题:接雨水(秒了)

    • 空间复杂度优化到O(1)怎么写

    • (思考的时候面目过于狰狞让面试官觉得我很自闭

    • (事实我也确实自闭了

  • 有什么要反问的么

    • Q:技术栈 Vue/React A:React多一些

    • Q:我表现怎么样,我CSS是不是烂的很呜呜呜 A:没事,还好,可以学

    • Q:二面时间 A:你等下,我去约一下二面的面试官,他大概十分钟上线

    • (内心OS :w(゚Д゚)w)

二面(100min)

  • 因为出去上了个厕所,回来和朋友聊着天通知就过来了,所以没有录屏,内容也不大记得了

  • 自我介绍

  • 项目介绍

  • 跨域

  • Flex

    • 实现以下布局

    • 稍微写了写开始描述属性

  • 事件循环
  • 然后给了一道async的代码题,自闭的写了会儿 ,有错误,讲了下中间想法,面试官纠正
  • http和https的区别

  • cookie和session的区别

    • 服务端客户端

    • 大小

    • 生命周期

  • sessionStorage & localstorage

  • http缓存机制

    • set-cookie ?

    • 你知道强缓存么

    • 阿巴阿巴这个我不太熟

  • 算法题

  •  给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 n/2 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 // 输入: [3,2,3] 输出: 3 // 输入:[2,2,1,1,1,2,2] 输出: 2
  • 我记得啊哈算法上有个很优雅的解决方式,是啥来着。。。开始自闭

  • 等了一会开始强答

    • 最简单,直接对象键值对应

    • 排序,取中间的哪个

    • 写了10分钟快排,调了调,“我觉得我写好了”

    • 面试官:“?你可以用API的”

    • 我:(°ー°〃)???

  • 你再看下这个题

  •  function get() {  // 请补全函数参数和实现逻辑 } const obj = { selector: { to: { toutiao: 'FE coder' } }, target: [1, 2, { name: 'byted' }] }; // 运行代码get(obj, 'selector.to.toutiao', 'target[0]', 'target[2].name') // 输出结果:// ['FE coder', 1, 'byted']
  • 写了个直接把参数丢成eval的

  • 面试官:“你这不行啊,直接用eval肯定好写” 我“要我字符串处理的意思?”面试官“嗯”

  • 然后我开始自闭的写了半个小时字符串处理

  • 然后运行成功,面试官说”你这太复杂了,用正则很好写的“

  • 我:”我下去就学“

  • 你有什么要反问的么

    • Q表现怎么样 ,我觉得我CSS烂呜呜呜 A:”可以了“

    • Q: 那个我什么时候能够接到此次面试结果

    • A:我这边给你通过了,你准备三面吧 (内心OS:啊啊啊啊啊我过了!)

  • 一面和二面一起面从五点面到七点半

  • 小伙伴还帮我订了外卖,真的太感动了QAQ

三面(60min)

  • 自我介绍

  • 你说你系统的学习是怎么系统的学期(看视频和文档)

  • React的数据为什么是单向流动的(props,变量提升,但是原理我不是很清楚)

  • async和await的理解(具体问题是什么忘了,但我感觉我应该没有答到点上)

  • 64马,8个赛道,找跑的最快的四匹

  • 算法题:

    • n个数,子序列中 ans = sum(l,r)*min(arr[i])
    • 挑选一个区间,区间值为区间和乘以区间内最小的数的值,求区间值最大的区间
    • 用单调栈处理获得每个数字最左和最右能够取到的数字位置,然后用前缀和处理一下区间和就可以了
    • O(n)
  • 反问

    • Q:三面结果 A:我们要评估一下

    • Q:培养方案 A:补基础,写一些小组件,参与到项目

三面过于紧张,加上题目涉及到的算法不太熟,写起来自闭的毛病又开始犯

代码写出来调了好久还是有错误,但是整体思路是对的

HR面

和HR交流了一下,给我说面试后一周内出结果

OC

等的一周整个人和废了一样,游戏打起来都没心情

在地铁上接到了HR电话,安排了入职,收到了邮件

十分开心

有什么要问的在评论区问吧


更多模拟面试

全部评论

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

推荐话题

相关热帖

近期热帖

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

近期精华帖

热门推荐