字节飞书前端一面(110min)

面试小哥人贼好,特别友善,在有些问题讨论时都一直眯眼笑着,很谦逊(真的很爱)。全程大概2h左右,一开始问了项目相关然后是js基础题再后面就是vue的一些底层原理计网部分就是一些八股。前面一小时和面试聊的很来,很多问题都答得挺不错,面试官也很满意。拉垮在最后一道算法(还有平时力扣刷太少了,算法一直做不出来越到后面越紧张😰,但是面试官全程鼓励我,最后在提示下写出了一半...)
1.项目中有哪些你觉得很新颖很闪光的点?
2.一道预编译的题目,看代码判断输出。
从这道题引出了go对象,ao对象,还有一个vo对象(vo对象确实触及盲区了,直接说了不会哈哈哈。)最后问了作用域机制并且最后问js在底层是如何能实现从作用域链往上查找变量
2.一道原型链的题,挺简单。
3.promise题目 看代码判断输出
4.一道vue题目, 一个组件模板,组件有三个响应式数据,模板中用到了两个。然后三个数据分别++,最后问组件收到几次通知,最后重渲染几次。题目本身简单,但是从这道题引出了vue的底层响应式原理(把依赖收集/派发更新/异步更新队列都详细阐述了一遍。)
5.为什么vue的异步队列放在微任务队列而不是宏任务队列?
6.阐述vue的diff算法
阐述完后,又就子节点列表使用双指针对比问了一些细节问题
7.计网部分
1) 谈谈对http缓存协议的理解
从http1.0开始到http1.1, 把expires,cache-control,last-modified,Etag都详细阐述了一遍并且指出来各种缓存字段的缺点
2)Etag字段如何根据资源内容生成唯一资源编号
3)谈谈https协议的原理
这题本身是八股, 简单。但是问了浏览器在接受证书时是如何判断证书没有被篡改过(知识盲区)
8.算法
大概意思是生成一个可能会有无限纬度的数组
,数组的最里层是一个数组,数组每一项是一个初始值.
算法卡了一个快小时,本来想直接摆烂的,但是面试官一直鼓励说都到最后一道了,我相信你,不然就可惜了呜呜呜
最后在面试官的提示下勉强做了三分之二

反问:
你觉得我哪个地方比较差?
面试官毫不犹豫的说算法太薄弱了,平时还是要多做算法。前端方面基础很扎实挺不错的
后面面试官又问了能从多久开始实习大概能实习多久
许愿能过一面!!
#面试复盘##字节跳动##前端#
全部评论
捕捉一枚学弟!
1 回复 分享
发布于 2022-04-07 12:39
🎉恭喜同学成功投稿参与【面试复盘】,并通过审核! 😉请留意你的私信,官方红N人员将与你取得联系,进行奖励发放~ 👉🏻戳:https://www.nowcoder.com/discuss/872618了解更多活动详情~
1 回复 分享
发布于 2022-04-15 19:30
卧槽大哥
点赞 回复 分享
发布于 2022-04-07 22:19
过了吗
点赞 回复 分享
发布于 2022-04-16 17:05
竟然面了这么久
点赞 回复 分享
发布于 2022-04-18 19:27
vue感觉问得好难啊
点赞 回复 分享
发布于 2022-04-21 22:19

相关推荐

关于前端是准备暑期还是准备日常实习的问题后文分群体类型解答 感觉最近找我辅导实习的同学都会一上来先纠结这个 不知道别的同学是不是会有这个疑问?偏向是给只会三件套或者也能用vue或者react能够增查删改的同学写的 比较快已经有高水准的实习或项目的可能不用看实习的用处是为了啥 我感觉就是补充竞争力 好学历加早准备自然会有好实习和好基础 而一般的bg加上很早学+大厂实习可以超过一些临时准备的好bg目前如果还没有开始背八股的92 感觉直接优先暑期 然后暑期过后再找日常 大厂的日常实习只要你不瞎学和摆烂我感觉92找大厂日常实习原则上是100%能进 有实习再准备秋招就OK 转不转正感觉没什么用 也容易被坑 多留个心眼 抽象ld是不少的 那种骗你产出库库干说给你转然后不给你耽误秋招的那种如果是一本无实习 建议找中厂日常起手会容易一点吧 感觉直接投大厂暑期会比较难了 或者你可以尝试做一下复杂一些的前端项目 如果学历够用 其实在找实习的时候不用太纠结项目复杂不复杂 基础更重要 但是学历差一些的 要保证过简历 然后再配合你对技术的理解和八股战神get offer弯道超车 此bg建议是中厂日常+大厂日常然后秋招后边我想再写一篇我认知范围内(从之前去各家实习的24 25届暑实)各家的转正几率和风险(可能是个例) #大家都开始春招面试了吗#  #前端#  #牛客创作赏金赛#  #实习,投递多份简历没人回复怎么办#
点赞 评论 收藏
分享
牛客318187938号:手写题1:代码:class EventQueue { constructor() { this.queue = []; } // 添加事件,支持链式调用 addEvent(event, priority = 0) { this.queue.push({ event, priority }); return this; } // 执行事件,按照优先级排序 executeEvents() { // 按照优先级从高到低排序 this.queue.sort((a, b) => b.priority - a.priority); // 执行事件 this.queue.forEach(item => { item.event(); }); // 清空队列 this.queue = []; return this; } } const eq = new EventQueue(); eq.addEvent(() => console.log('Event 1'), 1) .addEvent(() => console.log('Event 2'), 3) .addEvent(() => console.log('Event 3'), 2) .executeEvents();
点赞 评论 收藏
分享
评论
6
40
分享

创作者周榜

更多
牛客网
牛客企业服务