字节前端一面-重庆懂车帝

前提提要:前些天字节前端三面挂了,又被电商捞起来鞭尸,但比较喜欢懂车帝,就结束了电商那边的流程,开始面试懂车帝这边

3.18 下午两点面试,面了一个小时

1.自我介绍、特点特长

2.对未来的规划、想做什么

3.对前端岗位的理解、这个岗位需要做什么事情,相对于其它岗位的特点在哪里

面试官:大厂里面业务相关的直接丢给外包了

4.有没有了解前端一线技术领域所做的一些探索

5.前端应该学哪些东西,你现在掌握到哪种程度了

6.有完整的读过前端相关的书籍嘛

在看《你不知道的JavaScript》,html、css看w3c school,js看mdn,论坛再看掘金

7.前端性能优化的点

网络:
    减少网络请求:缓存、本地存储、雪碧图
    请求过程优化:Webpack构建工具优化、CDN加速存放静态资源
渲染:
    SSR服务端渲染
    减少回流重绘
    尽量少修改DOM 
面试官:你刚才谈的都是一些比较经典传统的性能优化,现在是移动端时代,一般会对其具体设备做优化、离线化、cdn边缘计算、nsr,pha?
你提到的现在通过一些自动化部署的方式就可以得到解决,真正需要手工干预到的就是上面提到的

8.css position属性、文档流

static:默认值、出现在正常文档流中
relative:生成相对定位的元素,相对于其正常位置进行定位。
absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
fixed:生成固定定位的元素,相对于浏览器窗口进行定位。
sticky:粘性定位,该定位基于用户滚动的位置,在relative与fixed之间做切换。

9.实现一个元素的水平垂直居中布局

flex布局
transfrom:translat(-50%, -50%)

10.css盒子模型

IE盒模型、标准盒模型
box-sizeing属性

11.css选择器及它们的优先级

12.html 里meta标签

13.网页更好的被SEO,有哪些方法

14.let/const/var

15.原型、原型链

16.构造函数与普通函数的区别

17.super

18.js事件循环机制,为什么会有宏任务和微任务两种类型的异步任务

宿主环境不同,宏任务是浏览器发起的,微任务是js引擎发起的

19.vue解决的问题,相对于原生开发的优点

数据驱动页面
组件化开发

20.熟悉的数据结构以及它们的特点

21.算法题


题目本来是输出组合种数,后来面试官又要求输出所有的组合
最后说到代码写法上可以再优化一点
function total(arr, aim) {     const n = arr.length;     let ans = 0;     let track = [];//每次最终的结果     let op = []; //所有的路径     const dfs = (cur, sum) =>{         //递归出口         if(cur === n) {             if(sum === aim) {                 ans++;                 op.push([...track]);             }return;         }         //选择列表         sum += arr[cur];         track.push("+");         dfs(cur+1, sum);         track.pop();         sum -= arr[cur];         sum -= arr[cur];         track.push("-");         dfs(cur+1, sum);         track.pop()         sum += arr[cur];     }     dfs(0, 0);     return op; }  console.log(total([1,1,1,1,1], 1))

反问:

1.对于此次面试而言,前端我还需要哪些加强和扩展的

深度不够,读JavaScript高级程序设计
接触的面还是比较窄,看社区讨论热度高的一些东西
总体还说算比较不错的

2.推荐前端社区,除了我现在在看的掘金社区

掘金更偏应用层,可以关注github上stars比较多的一些库和话题
加前端讨论群,讨论的人多了才会发现它的必要性和价值

3.最近在看阮一峰es6入门,还有一些技术博客的手写promise、vuex、vrouter、webpack,这些有必要深入去看嘛

目的是去理解它的原理,如果很理解了没有必要去手写了
如果还存在又模糊的地方,这个时候去手写它就很有意义了

五点hr打电话过来约二面,字节效率真高

#字节跳动面试##字节跳动##面经#
全部评论
22届校招吗
1 回复 分享
发布于 2022-03-23 13:00
反问的真好啊!
1 回复 分享
发布于 2022-03-18 23:55
太需要了 感谢分享
1 回复 分享
发布于 2022-03-18 18:33
楼主现在就业感觉怎么样!
点赞 回复 分享
发布于 2022-11-15 23:40 重庆
看了编程题写了下,感觉我的好拉胯..😂
点赞 回复 分享
发布于 2022-03-31 22:49
三面为啥挂了啊,base哪里啊
点赞 回复 分享
发布于 2022-03-20 22:54
请问三面结束后什么时候通知挂了的啊
点赞 回复 分享
发布于 2022-03-18 22:02

相关推荐

飞书前端一面面经:从基础到实战的技术碰撞一、面试初印象这次飞书前端一面给我的整体感受是节奏紧凑且直击技术核心。面试官风格沉稳,问题由浅入深,既考察基础能力,又注重解决实际问题的思维,是一次很有价值的技术交流。二、面试问题复盘1. CSS 基础考察面试官开场便询问我 CSS 基础掌握程度,我坦诚表示“不是很好”,随后进入具体问题:如何实现三列布局,要求两边宽度固定,中间宽度自适应。我首先提到可以用 JavaScript 监听窗口变化动态调整宽度,但面试官希望用纯 CSS 方案。我迅速想到 Flex 布局,并详细解释了实现思路:.container {  display: flex;}.left, .right {  width: 200px; /* 固定宽度 */}.center {  flex: 1; /* 自动分配剩余空间 */}接着,面试官追问 calc() 函数是否了解,由于平时使用较少,我仅简单说明了它能进行四则运算,用于动态计算 CSS 属性值,比如 width: calc(100% - 400px); 可以配合实现响应式布局。2. 项目与性能优化探讨当被问到 项目中的性能优化经验 时,我如实反馈:目前实习项目和个人项目经验较少,尚未深入接触性能优化模块。面试官没有追问,而是迅速切入算法题环节。3. 算法与代码实现题目1:封装 Promise 重试函数要求实现一个函数,传入请求的 Promise 和请求次数,请求失败时自动重试,达到次数上限后不再发起请求。我给出如下代码:function retryPromise(promise, times) {  let count = 0;  return new Promise((resolve, reject) => {    const run = () => {      promise        .then(resolve)        .catch((error) => {          if (count < times - 1) {            count++;            run();          } else {            reject(error);          }        });    };    run();  });}题目2:实现对象深拷贝我先写出基础版本:function deepClone(obj) {  if (typeof obj!== 'object' || obj === null) {    return obj;  }  let result = Array.isArray(obj)? [] : {};  for (let key in obj) {    if (obj.hasOwnProperty(key)) {      result[key] = deepClone(obj[key]);    }  }  return result;}面试官进一步要求 考虑边界情况,我补充说明:若对象属性为数组,需递归处理数组元素;若属性为函数、正则等特殊类型,需特殊处理。例如,对于函数可直接返回原函数,对于正则可创建新的正则实例。三、反问环节我向面试官提出疑问:“为什么在前端面试中如此看重 CSS 基础?”面试官耐心解答:“CSS 是前端页面布局和视觉交互的基石,良好的 CSS 能力能确保页面高效渲染和兼容性,是支撑复杂业务开发的基础,所以我们会重点考察。”四、面试结果与总结幸运的是,面试结果显示 已通过一面。回顾过程,坦诚承认自身不足并积极思考问题,以及在算法题中清晰的逻辑表达是关键。后续准备二面时,我将重点补足 CSS 知识盲区,积累项目实战经验,尤其关注性能优化相关技术,同时加强对 JavaScript 细节和边界场景的理解。这次面试也让我深刻认识到,扎实的基础和灵活的思维永远是技术面试的核心竞争力。
查看5道真题和解析
点赞 评论 收藏
分享
本🐭的第一场面试,结果上来就是重量级,这个时候很多概念都不清晰,很多简单题回答不好,面完后狠狠复盘了一番~写了一些问题总结。1.背景介绍:自我介绍2.怎么看待前端可能被AI取代3.为什么学Vue没有学React技术问题:4.Vue的响应式是怎么实现的5.Vue组件是怎么通信的6.用pinia做全局的状态管理,跟直接写这种组件,比如说vue自带的一些状态的管理,他们的区别是什么7.为什么我们要用Promise- 追问:那你对这种异步编程是怎么理解的?为什么我们需要这种异步编程?它异步在哪里?8.那你觉得Promise和回调函数的区别是什么- 追问:比如说你请求一个接口,请求完之后可以传一个回调函数进去,让他接着处理后面那些逻辑。而Promis使用.then.catch这种方法。你觉得promise这种方法和回调函数直接把逻辑传进去最大的区别是什么9.讲讲XHR、fetch、axios的区别讲XHR是底层、fetch是更新用法、axios是封装- 追问:axios还有一个很明显的跟另外两个的区别- 没有回答出来,我说axios是基于promise的,面试官说fetch也是…- 正确答案:axios是浏览器和服务端都能用,fetch和XHR主要是在浏览器上用10.刚刚提到HTTP,那HTTP可以大概介绍一下吗?回答了TCP相关内容……面试官说http是基于TCP的封装,有自己的一套东西,比如说get、post这些http方法,比如说header这样的一个请求头的组成这些11.讲讲CSS的盒模型一顿输出,跑题了。12.讲讲inline-bolck和block的区别回答内部展示inline特性,外部展示block特性,宽高都可以设置。问宽度也可以设置?回答可以。13.flex和bolck的区别甚至忘记了“弹性盒”这个词,还在说什么主轴、纵轴14.CSS选择器有哪些?优先级是怎么样的?同时使用很多个选择器,优先级是怎么判断的15.JS有哪些数据类型?这些数据类型怎么在代码中进行判断?16.判断类型有哪些方法?17.es6相比es5多了有哪些语法18.箭头函数和普通函数的区别是什么回答1书写方式 2this指向- 19追问:似乎想让我说的是其他部分,难受我操的- 20追问:如果想改变普通函数的this指向,有哪些方法:call,apply,bind,有什么不同,bind的用法忘了- 21追问:箭头函数和普通函数还有一个比较重要的区别:没答上来,答案是箭头函数不能用作构造函数(忘记了。。。)22.常用的数组的方法有哪些?手撕:两数相加 梦的起点leetcode 1用对象(object/set)的话,可以把值当作key,先循环一次把数据存到对象里,key和value可以设成一样的值。然后再遍历一次,用目标值减去当前值,比如把2、7、11、15存到对象里后,遍历的时候计算9 - 2是否等于7,再去对象里用这个差值作为key查找,就能知道结果了。反问改进:因为你学习前端的时间比较短,目前很多概念理解得还不够深入,有些都混淆了。而且从刚刚答题情况看,你JS代码写得可能也比较少,像刚才那道题,JS写得多的话应该很快就能想到用对象来优化。所以我建议你先沉淀一下,不要着急练习项目。现在才刚起步,要把基础打牢。另外,我不太建议你现在学Vue,更推荐学react。像字节跳动,整个集团都主要用react开发,而快手、美团这些公司可能Vue用得更多,你可以根据自己未来想去的公司来选择。还有HTTP相关知识,和TCP的区别比较大,你要再多看看。剩下的就是建议你多看书,系统地学习,很多概念你还没抓住重点,回答问题时有时没讲到关键内容,却回答了一些边缘问题,之后可以复盘总结一下。
查看24道真题和解析
点赞 评论 收藏
分享
评论
27
103
分享

创作者周榜

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