字节跳动-生活服务 暑期实习 4.14一面
原本一面约的是45分钟 面完整个过程大概一个小时多一点,大概可能是因为中间有一些问题进行了一些讨论,因为不太记得题目顺序了,就想到什么问题就写什么问题了,顺序不重要!先问题然后再手写代码
-
自我介绍
-
怎么接触到的前端呢
-
学习方式有哪一些?视频 博客 书籍 项目中运用
-
实习主要做了些什么? 主要做哪些项目?tob的也有toc的也有,然后根据实习里的组件库项目讨论了一下jest测试用例 覆盖率等等
面试官说问一些基础的
-
css 中 bfc了解吗 说一下是什么 有什么应用场景
-
说一说箭头函数? 说完了问 箭头函数的原型函数是什么 一时间脑子不清醒 没答上来 然后面试官说换一个思路 先说一下new操作符 答到new操作符不能去new箭头函数 所以猛的想起箭头函数是没有原型对象 面试官就说是对的
-
js的事件模型哪几个阶段都了解吗?那是先捕获阶段还是先冒泡阶段?
-
浏览器的本地存储有了解吗?回答cookie和storage 存储大小 过期时间等等 又问了问存储大小具体?回答cookie 4kb左右 ,storage有几mb
-
https和http ?讲了混合加密过程和ssl证书数字签名等等。
-
react hooks 在if判断中使用会怎么样?当时也没想清楚 面试官又说那我们也换一个思路 刚刚你说你了解react源码 那对它的fiber架构有了解吗 我简单说了一下任务的优先级
-
反问那fiber是一个什么数据结构?我说是树结构 面试官说不对 是链表结构 如果if语句去调hook 会将整个结构打断的,然后基于这个和面试官讨论了一小会。
-
浏览器的缓存有了解吗?说了强制缓存和协商缓存。
-
那是用哪个字段控制的呢?
-
跨域问题有遇到过吗?怎么解决的呢?答完后问我实际项目和实习中遇到是怎么解决的,回答了项目里的nginx反向代理
-
代码题:关于this指向的问题,面试官让我说思考这个题的流程 √
-
代码题:关于async/await的一道,面试官本来说让我想一下然后写到边上,我说我直接说就可以说,然后他可能看我答得太轻松了就说我再想还考点啥,然后他就边想边手敲了一段代码(面试官想再考考) √
-
问下面这一段放在浏览器执行,会怎么样?我一开始在分析,然后分析着他就问浏览器界面会卡死吗?我也不清楚标准答案,我说宏任务队列会不断更新,如果页面已经渲染完了就不会让浏览器卡死。
const fn = ()=>{ setTimeout(()=>{fn();},0) } fn();
-
紧接着他又改了改:那下面这个会怎么样呢?我说这个会不断更新微任务队列可能导致界面卡死,他说当前这一个执行栈会怎么样,我回答可能永远不会停止所以界面卡死。
const fn = ()=>{ Promise.resolve().then(()=>{fn();}) } fn();
-
我也不知道上面两题回答是否正确,面试官也没说就接着考:节流函数知道吗?封装一个节流函数。很快写完,面试官问了问里面变量的含义,没问题 √
-
Promise.all方法有用过吗?实现一下?手写了一个,然后有一点细节问题面试官让我改一下,参数里有不是promise情况怎么做?那想要返回的结果和入参一一对应该怎么做?
-
做一道算法题吧!全排列 用递归完成了 第一次输出有问题,后来有个地方改成Array.from(),然后就a了,面试官问为什么会这样?答了一下from实现浅拷贝。
-
反问:对我之后学习的一个建议?说也没什么特别的建议,现在肯定不如那些工作经验几年的,以后在业务场景不断提升自己就好了。
-
反问:技术栈,字节90%都是react
-
反问:应该对最近微前端,webgl,低代码那些去学习一下吗?回答说,都是根据业务场景再去选择用什么的,在日新月异的环境应该打牢基础,这样学一个新的东西才会更快,低代码包括微前端都有局限,只是加快效率。
总结:整个面试的体验特别好特别好,面试官遇到我一时间没答出来的也让我别紧张,然后引导我去解开,感觉更加是看重思考问题的能力,很多地方都有豁然开朗的感觉。面完不到一个小时就给结果进二面了。