字节跳动前端校招一二三四技术面,已offer

【一面】1hour

1. 自我介绍
2. 项目难点介绍,怎么进行解决与优化的
3. 手写:数字的千分位转化,如:123123234.123 -> 123,123,234.123


1、为什么第二次访问项目白屏的时间会缩短,引出http缓存;是通过什么方式来找到本地缓存文件的?
2、css、js解析顺序与相互阻塞;引出defer、async
3、cdn缓存原理;引出http强制缓存cache-control:public
4、Linux  找到名称nginx并杀掉的方法;讲一下守护进程
5、死锁的理解
6、socket   websocket的理解
7、http  400    502的含义
8、http 2.0的新特性?引出多路复用的流程及二进制分帧、头部压缩hpack的原理
9、内存泄露的场景及如何解决?引出内存泄漏的排查工具 chrome tools
10、点击事件的几个阶段?preventDe***t是否会阻止冒泡
11、instanceof的原理
12、0.1  +  0.2  === 0.3,解释原因;引出二进制浮点数对于小数的处理
13、const  a = {},是否可以改变对象属性值?如果属性值不能改变怎么做?
14、变量提升的理解?
15、异步任务js是怎么处理的?引出了event loop的流程及宏任务与微任务的介绍
16、如何判断一个元素是否在视口范围?
17、css  postion fixed  absolute的区别;他们是怎么定位的,有参考对象吗?
18、<ul><li></li></ul>
19、vue   data为什么不能是个对象;引出为什么不能是箭头函数?
20、dom diff的原理及时间复杂度
21、手写:通过多叉树的广度优先遍历,找到值为xxx的节点

【二面】1hour

1. 自我介绍
2. 判断数组的方法?说一下instanceof的原理?
3. 说一下下面结果输出什么?
var length = 10;
function fn() { return this.length+1;
}
var obj = {
    length: 5,
    test1: function() {
        return fn();
    }
};
obj.test2=fn;
//下面代码输出是什么
console.log(obj.test1())
console.log(fn()===obj.test2())

4. 手写寄生组合式继承

5. 实现一个repeat方法
// 需要实现的函数
function repeat (func, times, wait) {},

// 使下面调用代码能正常工作
const repeatFunc = repeat(console.log, 4, 3000);
repeatFunc("hello world");//会输出4次 hello world, 每次间隔3秒

6. 用链表实现约瑟夫环算法

假设有n个人,标号为1到n。
从第一个人开始计数,到第k个人则出列,随后从第k+1个人重新计数,到第k再出列....。
直至剩下最后一个人。问最后剩下的人的编号?

7. 说一下以下题的思路

标题:输入电话号码时自动推荐出下一位合法的数字集
描述信息
公司有10万名员工,每名员工都有一个座机号码。现在要在网页上实现一个“自动补位推荐” 的功能,问如何实现?

解释:

“自动补位推荐” 功能:有一个输入框,用户每输入一个数字,立马推荐出下一位合法的数字集合。
比如只有 5789234、5623786、5633678三个电话号码,当第一位输入5时,立马推荐下一位有效数字集合[ 7, 6 ],
如果第二位输入6时,下一位有效数字集合为[2,3]....

8. 说一下实现一个SPA应用统计pv的SDK的思路

9. 说一下扫码登录的实现流程

10. 说一下为什么不能客户端生成二维码ID?

补充:
1. 数字转换为千分位有哪几种方式?都说一下是如何实现的

【三面】1hour

1. 项目特点介绍
2. 讲一下项目是如何进行优化的?
3. 手写一个compose的方法
a(b(c(d('xxxx'))))

const func = compose(a, b, c, d)
func('xxx')

4. 说一下vue组件的通信的实现方式?eventbus的设计模式是什么?
5. 场景题:手写一个组件,组件实现内列表之间的状态管理
6. 对于前端之外的技术你还有哪些感兴趣的?

补充:
1. 如何对兼容性代码进行处理?
2. 脚手架的代码被修改后,别的使用到这个脚手架的项目也需要进行更新,那么这时候怎么处理会比较好?
3. 你是如何去规范别人写的代码的?eslint的表现是怎么样的?如何保证别人提交到github的代码是正确的?
4. grunt、gulp了解吗,他们和webpack有什么区别?之间的优势和差别是在哪?
5. 如果让你实现一个脚手架,你应该需要考虑什么点?
6. 你是强制要求模块化划分吗,还是说有什么标准?

【四面】0.5hour

1. 简单的自我介绍
2. 项目特点详细介绍,从页面、架构设计分析
3. 一个多商铺商城的完整介绍(从用户、产品的角度去分析介绍),C端、商家B端、平台端
4. 介绍一下你在前公司的定位,职责,干的事情
5. 介绍前公司的项目报价、客单价、人天、项目成员分配

补充:
1. 说一下最常用的组件、设计风格、为什么这么设计

【hr面】

因为我在大学期间有过创业经历,所以主要是问我创业以及各方面综合素质的问题~

【offer】

一星期后谈薪下offer,评级sp

#内推##春招##面经##校招##字节跳动##前端工程师#
全部评论
太强了。想问下项目经历楼主怎么来的?
1 回复 分享
发布于 2021-05-22 17:34
太强了SP这是春招补招吗?
1 回复 分享
发布于 2021-05-22 16:47
请问这是哪个部门呀
点赞 回复 分享
发布于 2021-09-13 01:33
这校招太难了吧
点赞 回复 分享
发布于 2021-06-02 11:04
怎么是四面
点赞 回复 分享
发布于 2021-05-26 00:06
自动推荐功能思路是什么呀~可以说一下嘛
点赞 回复 分享
发布于 2021-05-25 09:43
不愧是字节 八股真多😂😂😂
点赞 回复 分享
发布于 2021-05-24 09:16
巨佬
点赞 回复 分享
发布于 2021-05-23 09:17

相关推荐

2025-12-24 15:25
已编辑
门头沟学院 前端工程师
是腾讯的csig腾讯云,前天晚上九点突然打电话约面,激动的通宵学了一晚上,第二天状态很差改了今天(以后再也不通宵学习了)感觉自己浪费了面试官一个半小时单纯手写+场景,无八股无项目无算法,打击真的很大,全是在面试官提醒的情况下完成的,自己技术方面真的还是有待提高,实力匹配不上大厂和已经面试的两个公司完全不一样,很注重编码能力和解决问题的能力,然而我这两个方面都很薄弱,面试官人很好很耐心的等我写完题目,遇到瓶颈也会提醒我,写不出题也会很耐心的跟我讲解好感动,到最后面试结束还安慰我打算把下周最后一场面试面完之后就不面啦,如果能去实习还是很开心,但是最重要的还是好好努力提高技术以下是面经第一题//&nbsp;实现一个解析&nbsp;url&nbsp;参数的函数function&nbsp;parseUrl(urlStr)&nbsp;{//&nbsp;TODO}parseUrl('*********************************************');//&nbsp;返回&nbsp;{a:&nbsp;1,&nbsp;b:&nbsp;2,&nbsp;c:&nbsp;3}追问:在链接里见过什么部分?用&nbsp;hash&nbsp;路由的话放在哪第二题//&nbsp;考虑有一个异步任务要执行,返回&nbsp;Promise,这个任务可能会失败,请实现&nbsp;retry&nbsp;方法,返回新方法,可以在失败后自动重试指定的次数。/***&nbsp;异步任务重试*&nbsp;@param&nbsp;task&nbsp;要执行的异步任务*&nbsp;@param&nbsp;times&nbsp;需要重试的次数,默认为&nbsp;3&nbsp;次*/function&nbsp;retry(task,&nbsp;times&nbsp;=&nbsp;3)&nbsp;{//&nbsp;TODO:&nbsp;请实现}//&nbsp;---------------测试示例&nbsp;----------------//&nbsp;原方法const&nbsp;request&nbsp;=&nbsp;async&nbsp;(data)&nbsp;=&gt;&nbsp;{//&nbsp;模拟失败if&nbsp;(Math.random()&nbsp;&lt;&nbsp;0.7)&nbsp;{throw&nbsp;new&nbsp;Error('request&nbsp;failed');}const&nbsp;res&nbsp;=&nbsp;await&nbsp;fetch(&#39;https://jsonplaceholder.typicode.com/posts&#39;,&nbsp;{method:&nbsp;'POST',body:&nbsp;JSON.stringify(data),});return&nbsp;res.json();}//&nbsp;新的方法const&nbsp;requestWithRetry&nbsp;=&nbsp;retry(request);//&nbsp;使用async&nbsp;function&nbsp;run()&nbsp;{const&nbsp;res&nbsp;=&nbsp;await&nbsp;requestWithRetry({&nbsp;body:&nbsp;'content'&nbsp;});console.log(res);}run();第三题就是给&nbsp;retry&nbsp;函数添加类型注释,用到泛型第四题:在组件库中将&nbsp;Alert&nbsp;用&nbsp;api&nbsp;的形式实现(应该就是&nbsp;message&nbsp;这个组件)怎么渲染到一个浮层里而不是原地渲染出来
不知道怎么取名字_:技术这个东西,太杂了,而且要下功夫的
查看5道真题和解析
点赞 评论 收藏
分享
2025-11-10 08:05
河北师范大学 Java
用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
16
121
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务