字节跳动前端一二三面+hr面(已offer)
前言
楼主大二,海外疫情只能在家上网课,同学帮忙内推了字节(在此无敌感谢)。整体面试还算顺利,面试官素质很高,面试的时候不会有压力。比较走运没有被问到很难的题(也可能是我水平不够给看穿了)。这里写下面经回馈社区,求轻喷。
一面(12.29)
- js如何实现绑定?答:call,bind,apply简单说了一下区别
- 浏览器的存储机制?
- 接上题,session和cookie的区别?答:session,cookie,localstorage,indexdeddb对比着说了一下
- promise了解吗?答:通过链式调用,解决了回调地狱,然后说了一下不同时期的promise对应的状态
- 接上题,async await和promise的区别?
- 宏任务微任务了解吗?promise是什么任务,settimeout呢?
- 常见的http状态码,分组说一下,然后用过哪些状态码?
- css权重?答:说了不同选择器对应的权重,以及计算方式。
- 盒模型,flex盒?答:说了w3c和ie盒模型,以及box-sizing属性。flex简单说了说主轴和侧轴以及常用的属性
- 手写代码题:css居中 答:写了flex和absolute两种,面试官说够了
- http、https了解吗?这个没答好,一下子卡壳了,然后三面又遇到了
- 手写代码题:嵌套数组拍平 答:递归实现
反思:大部分问题都磕磕绊绊的答出来了,但是基础还是不牢,面试官追问几次后就到技术盲区了。
二面(12,29)
一面完马上就是二面
- js基础数据类型?答:7+1
- 接上题,引用数据类型有哪些?答:数组、对象
- 接上题,基础数据类型和引用类型在内存中怎么存储?答:简单说了一下栈内存,堆内存
- 手写代码题:写一个深拷贝。答:先说了一个stringify+parse的方式。然后写了一个递归的实现,但是卡在特殊类型的处理卡了好久。function、date还有各种包装类的拷贝,当时没有答出来。
- tcp,udp区别?
- 接上题,tcp三次握手四次挥手的流程是什么,为什么要三次握手
- 接上题,大文件上传,服务的客户端怎么知道上传完成?答:这个我是真的不会,硬着头皮答了,估计是错了。
- 手写代码题:用户名正则表达式,数字或英文字母开头,8-26位,不允许/*.符号。答:虽然是一道很简单的题,但是我是真的学过,在面试官的提醒下很坎坷的写出来了。
反思:二面大部分时间都是在手撕代码题,穿插着问了一些基础知识点。还是基础不牢,所以在手写代码的过程中耽误了很多时间。
三面(12.31)
三面比较短,主要是做过的项目和个人情况。技术问题没有之前多。面试官比较在意如何能白天上班晚上网课保存平衡,答:时间管理
- 登录验证怎么做的?答:cookie+session。小程序里没有cookie,通过本地存储+authorization请求头实现
- 接上题,session怎么校验有效性?
- 接上题,session在服务器中怎么存储?
- 项目难点?答:小程序缓存的版本隔离。防止新旧版本、开发版、体验版、正式版的共享同一块缓存出现问题
- css-module?答:为了解决css(没有?)命名空间的问题。通过hash类名隔开各个css类,防止冲突
- 接上题,css-module在webpack里怎么配置?
- 接上题,webpack的plugins和loaders的区别
- http、https的区别?
- 还有一些其他的js基础的问题我记不清了
- 手写代码题:二叉树求和。答:一开始想到遍历树得用深搜,写着写着发现写成了前序搜索,误打误撞写(思路)对了。就是写的不够优雅,然后执行上可能会有一些小bug。
input:
2
3 4
1 2 5 6
output:
231+232+245+246=?
反思:之前实习没有做过大项目,谈到的项目难点也不算真正的难点,相比起来还是比较弱的。
之后就是1.4号hr面,简单问了问个人情况,介绍了一下福利待遇。字节的效率确实很高,hr面后24h内收到了offer。最后感谢字节给了这个机会!
#实习##字节跳动##前端工程师##面经#