字节跳动飞书秋招提前批一面二面面经,三面凉经,各位共勉

基本情况

本人是 21 届,武汉的某211 的计科研狗。

在学院群里受同学鼓舞填了字节飞书内推,投了字节飞书武汉前端岗。
7月10号,一面,7月14号二面,三面通知在7月20 号,真是等的太漫长了。
受疫情影响,所有面试都是在线上进行。进入正题

一面

面试安排在下午两点,面试官迟到了5分钟,我打了hr小姐姐的电话,通知他,他才来。。。
面试官是个大概30岁左右的小哥(也不帅啊,别人的面试官都是很帅的吗,我没遇到啊)
但是,小哥很友好,迟到了,连忙抱歉,相互打了招呼就开始正式面试了。
下面是问的问题:
  • 首先来个自我介绍吧。我叫XX,来自XX,今年XX,现在在XX大学的研二学生。
  • 期间做过哪些项目呢?(和我想的一样,然后就开始巴拉巴拉的说,大概逻辑就是什么时候,做了哪些项目,项目用了哪些框架技术,怎么实现的。这一块我说了很多,因为之前有过其他公司的面试经历,大概猜到面试官会从项目找知识点后面详细考察,所以我特地往自己擅长的方向说,这点大家可以借鉴一下,算是个技巧,别说太广,给自己挖坑,因为面试官想了解你,知识点会问很深,你要把自己很了解的,自己的优势展示给面试官,而不是他问深一点你就不知道了。)
  • 项目中遇到了跨域,跨域有哪些方法,是什么原理?(项目中提到了的,肯定就会问。很有信心回答了。我还把为什么要跨域,同源策略,什么是同源也说了一遍,然后跨域的几个方式逐个介绍jsonp原理,cors原理,Nginx简单说了一下,window.name+iframe,websocket,面试官很满意)
  • get和post有哪些区别?(也是在项目里提及到的。回答的也不错,有个重点面试官会深问,get是一个tcp包,post是发俩tcp包,发的是什么,服务器回的什么状态码)
  • 说几个熟悉的http状态码(上题的延伸,100,200,301,302,304,403,404,502大概说了这些)
  • 服务器回复的报文头部有哪些字段?(也是接着问下来的,其中我说到了缓存这块)
  • 说一下强缓存和协商缓存(感觉面试官跟着我思路在走,问的都是我准备好的一套,回答的也是没有问题)
  • 问我项目中登录信息怎么存放的?(cookie,sessionStorage,localStorage一套也是准备好了,三个技术有何区别。)
  • cookies可以设置哪些字段,有何作用?
  • 项目中用了vue,说一下为什么在三大框架中选择vue,说一下vue特点优势?
  • vue组件传值怎么实现的?
  • vue的双向绑定的原理?能不能手写一个双向绑定?(这个也有准备正中下怀)
  • 有了解过柯里化吗?(见过,说了一下什么是柯里化,有什么好处)
  • 手写一个函数的柯里化,实现下面功能
  • sum(1,2,3,4,5)   sum(1,2,3)(4,5)  sum(1)(2)(3)(4)(5)   。。。。结果都是15(这个不难,但是问的时候比较懵,回答不是很好,面试官提示了一下,勉强搞定)
时间差不多到了,大概40min,你有什么想问我的?(请对于我这次面试做个评价,如果有机会进入下一轮,有什么建议,我每次都是这个问题哈哈哈,感觉也比较官方正经)
一面结束,面得问题很常规,基本上都在我的准备当中,面试官也很有耐心,整体体验很好,当天晚上收到二面通知。


二面

二面安排在14号下午,也是两点,hr小姐姐主动打来电话,说面试官有点事情,晚点到。
2点10分,面试官来了,面试官感觉也是30出头的一个小哥,但是头发不多了(我不配拥有帅气温柔的小哥吗),也是同样的相互打了招呼进入正题。
下面是问的问题:
  • 首先来个自我介绍吧?(常规问题)
  • 做过哪些项目?(同一面,感觉这是面试的基本流程,都要走的,如同一面,巴拉巴拉,想要面试官进入我的节奏,主动引导
  • get和post的区别?(同一面)
  • 强缓存和协商缓存说一下?(同一面,协商缓存里面我提到了304,想引导他问我状态码)
  • http状态码知道哪些?(同一面,暗自窃喜,哈哈哈哈)
  • css中position可以设置哪些值?有什么区别?(static relative absolute fixed,好像没说全,进入css样式考察了)
  • box-sizng可以设置哪些值,什么区别?
  • 盒子水平居中(说了三个方法)
  • vue中你觉得什么最好?(就是把vue的优点又说了一遍)
  • diff算法有了解过吗,说一下(了解过,说了一下为什么要diff,主要是节省开销,提了一下虚拟dom,然后和真实dom同层比较,调用patch,说的不是特别好,但是重点原理都说了)
  • 页面的回流和重绘知道吗?有什么区别?(回流必重绘,重绘不一定回流,回答了一下什么是回流,什么是重绘,这点之前看过文章,结合dom tree和css rules结合的render tree相关知识,说的还是比较好的
  • 有什么好的办法优化页面渲染?(这个答得很烂,提了一些感觉不在点子上,说了一下少用css嵌套,css继承的属性不用重复设置,合并css文件,图标类用css spires?是不是这样拼的我也忘记了,只用加载一个大的图,大图中定位小的图标的一种技术)
做两道题吧?
  • 实现一个函数a(),第一次调用输出0,再调用输出1,再调用又是0。再调又是1
我是用闭包写的,声明一个变量,初始化为0,调用一次++,然后判断奇偶数,奇数就return 0,偶数就return 1,感觉思路有点蠢哈哈哈哈哈
  • 第二题
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
这不就是力扣第一题吗,简单。秒掉
var twoSum = function(nums, target) {

    var res = []
    var len = nums.length
    for(var i = 0;i<len-1;i++){
        for(var j = i+1;j<len;j++){
            if( nums[j]+nums[i] == target){
                res.push(i)
                res.push(j)
            }
        }
    }
    return res
    
};
然后问了一下时间复杂度是多少,能不能一次遍历实现?对于算法优化这块我确实不行,想了一下,面试官就说今天就到这里吧,时间差不多了。
常规的问问题环节,你有什么要问我的?(我还是那个问题哈哈哈。。)

二面结束了,45min。整体来说还是很简单的,可能是我套路深,还是运气好?哈哈哈哈

15号上午接到hr二面通过的电话,准备三面中,三面不知道是不是主管面,我听别人说字节二面过了就捞了,也不知道真的假的,希望一切顺利拿到offer。

更新:三面

7.20号晚上八点进行的字节三面,面试官迟到了2分钟(面试官挺年轻的一个小哥,这是leader吗?年轻有为)
进来相互打了招呼以后,就正式开始面试了。
下面是问的问题。
  • 先做个自我介绍吧。(常规问题)
  • 在校做过哪些项目?(我这里给他共享屏幕,展示了项目,这一块我说的很多。他一直没怎么说话)
我们来看几道题吧(不问知识点的吗,直接就看题了,有点懵逼)

console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
new Promise(function(resolve) {
console.log('promise1');
resolve();
}).then(function() {
console.log('promise2');
}).then(function() {
console.log('promise3');
});
console.log('script end');
说一下输出的顺序,为什么?(这题不难,就是考的同步任务,异步宏任务,异步微任务的执行顺序)

  • 实现下面的函数

add(2,3,4).sumOf()
add(2)(3,4).sumOf()
add(2)(3)(4).sumOf()
add(2,3)(4).sumOf()
我靠这不是又是柯里化吗??(我把一面的写了一个差不多的柯里化给他,但是有点差别,他这个要链式调用求和函数,他说你能不能实现我这个,额琢磨了半天,菜,没搞出来,下一题)

  • 实现一个字符串的ip复原,输出一个数组,包含有可能的ip
力扣的93题
输入:"25525512212"
输出:["255.255.122.12", "255.255.12.212"]
(当时看过这题,有点印象但是写不出来了,记得反正用js写挺复杂的,后悔没有好好研究这题)
下面这是力扣大佬的方法,我是写不出来了,膜拜
var restoreIpAddresses = function(s) {
    let result = [];
    function helper(s, last, segments){
        if(segments == 3){
            if(s.length <= 3 && parseInt(s.slice(0,3)) <= 255){
                if(s.length >= 2 && s.charAt(0) == "0"){
                    return
                }
                let item = last.concat(s)
                result.push(item);
                return
            }
        }
        if(segments < 3){
            let item = last.concat(s.slice(0,1)).concat(".");
            helper(s.slice(1), item, segments+1)
            if(s.charAt(0) != "0"){
                item = last.concat(s.slice(0,2)).concat(".")
                helper(s.slice(2), item, segments+1)
                if(parseInt(s.slice(0,3)) <= 255){
                    item = last.concat(s.slice(0,3)).concat(".")
                    helper(s.slice(3), item, segments+1);
                }
            }
        }
    }
    helper(s, "", 0);
    return result;
};


可能是面试官很忙吧,这三个问题问完,就问我你有什么问我的吗?(我当时心中一惊,这就结束了要???心里凉了都,知识点都没怎么问。估计面试官印象也不是很好了)
问了一下,飞书的技术栈这些,需要准备哪些知识。

整个过程很快大概40min,心里想着凉透了。三面的面试官很注重算法题,本人平时算法搞得少,加上这次问的问题少,准备的基础知识都没有问,直接上的算法题,吃了大亏,要去恶补算法了。
凉凉,大概率过不了,一题半没整出来。现在也是后悔了,原题看到了,写不出来。。。
不知道会不会被其他部门捞,有后续在给大家更新吧。
三面凉经,唉第一次写面经,写的不好,大家多多包涵。
各位加油吧



#字节跳动秋招提前批##字节跳动##秋招##前端工程师##面经##内推#
全部评论
``` function a(){tmp = tmp || 1;return function(){console.log(tmp);tmp++;return tmp%2}()}; ```
2 回复 分享
发布于 2020-07-15 16:58
那个两数和算法,可以先排序,然后采用双指针(左右一边一个),如果两数相加大于目标值,就右边指针向左移,小于就左边指针向右移。指针移动的时候把重复的值直接跳过(下标注意不要超出边界)。你可以按照这个思路写一下三数和。。。😁
1 回复 分享
发布于 2020-07-16 00:16
昨天自己写了一个三面的柯里化,其实思考一下也不难,当时那个环境有点慌了。 下面附上代码 function add() {     //add()的参数     var args =[].slice.call(arguments)       var fn = function () {         //链式调用的参数         var arg= [].slice.call(arguments)         //参数拼接         args = args.concat(arg)         return fn     }     fn.sumOf = function () {         var sum = 0         for (var i = 0; i < args.length; i++) {             sum = sum + args[i]         }         return sum     }     return fn }
1 回复 分享
发布于 2020-07-22 09:49
三面以后回来更新,求上岸,求锦鲤
点赞 回复 分享
发布于 2020-07-15 16:44
真的好简单 希望我面的时候也是这么简单许愿许愿
点赞 回复 分享
发布于 2020-07-15 17:13
我也遇到了那个leetcode第一题我一开始写的就是一次遍历的解法,但是想不到其他的方法了
点赞 回复 分享
发布于 2020-07-15 17:15
楼主几号投的简历啊
点赞 回复 分享
发布于 2020-07-15 18:38
作者:Saltishh 链接:https://www.nowcoder.com/discuss/452137?channel=1010&source_id=home_feed 来源:牛客网 #岗位招聘 我们是阿里巴巴集团新零售技术旗下全球化技术军团,我们致力于通过世界一流的全球化技术体系服务来自全球的10亿+海外消费者,为全球消费者带去极致的购物体验,让全球买全球卖的使命落地成为普惠全球的现实图景。国际化技术军团服务的业务实体有AliExpress、Lazada、天猫海外、Daraz、Trendyol等。国际化是未来重点的发展方向之一,错过了国内移动互联网红利的你,请不要再错过国际化的红利! 在这里,你能够学习到最前沿的全球多地多活的区域化云解决方案。你将要和我们一起构建世界级的高并发高可用电商系统。全球220+国家的用户将在你写的代码中完成一流的购物体验。 同时,你可以接触来自世界各地的各国同事,形成良好的国际化视野,锻炼多语言的工作能力!来吧,加入我们,一起创造国际电商的新格局!全球名校人才聚集地,和全球精英一起战斗!在阿里国际化战略下挥斥方遒,纵横驰骋!在时势与历练中只为遇到最好的你! 招聘对象: 2020年11月-2021年10月期间毕业的海内外同学 工作地点: 杭州、深圳 岗位信息: JAVA研发、测试开发岗 简历发至: jingyu.yjw@alibaba-inc.com
点赞 回复 分享
发布于 2020-07-15 19:56
一次遍历只能用空间换时间吧,用哈希表过一遍就可以了
点赞 回复 分享
发布于 2020-07-16 00:19
你好,是什么时候通知三面啊?二面当天,还是?
点赞 回复 分享
发布于 2020-07-16 08:25
你这二面真的是过于顺利啊哈哈哈哈哈
点赞 回复 分享
发布于 2020-07-16 08:54
平时在学校前端做项目,基本不会遇到算法题的,更不会考虑效率优化啥的,基本就是做项目功能而已,本人对于各种对象的方法还是熟悉的,这次对于面试还是特地去补了几天的算法题,好在面试官对于前端算法好像要求也不是很高,考的都很简单,要是来个比较难的算法,我可能就拉了跨了
点赞 回复 分享
发布于 2020-07-16 09:25
要不要来试试 阿里巴巴--淘系交易 强烈邀请~~   come on !
点赞 回复 分享
发布于 2020-07-16 13:50
楼主能够告诉我vue有啥优点嘛,这个我真的不太会回答惹
点赞 回复 分享
发布于 2020-07-16 16:47
楼主说的我都不会...面的是全栈岗位,前端小白,请问楼主有没有啥比较好的面试知识点总结呀?
点赞 回复 分享
发布于 2020-07-16 22:36
二面过了就捞了? 这句啥意思😂
点赞 回复 分享
发布于 2020-07-18 10:46
我想知道你们有笔试么?
点赞 回复 分享
发布于 2020-07-18 15:04
20号了!楼主快回来更博!
点赞 回复 分享
发布于 2020-07-20 16:33
我太菜了,字节手撕一个都没过😭😭😭
点赞 回复 分享
发布于 2020-07-20 18:57
HTTP那一块有点优秀
点赞 回复 分享
发布于 2020-07-20 19:20

相关推荐

不愿透露姓名的神秘牛友
11-09 17:33
饿了么 算法 28x16 硕士双一流
点赞 评论 收藏
分享
评论
13
118
分享
牛客网
牛客企业服务