深圳头条-开发者生态部门-面经-已拿offer
具体什么原因去面的头条,说不清吧,反正就是已拿offer,来分享一下面经。
问题比较多, 而且很多面试题都是跟个人项目相关的,项目相关的问题借鉴意义不大,所以这里总结一些与项目无绝对关系的问题,欢迎围观~
另外,我目前还在阿里/腾讯等的流程中,等结束之后,也会做些记录和输出,欢迎大家持续关注~
笔试题
一面:
-
执行代码求输出,并说明为什么,严格模式下输出有变化吗,为什么
var a = function () {this.b = 3;} var c = new a(); a.prototype.b = 9; var b = 7; a(); console.log(b); console.log(c.b);
-
给定一个升序整型数组[0,1,2,4,5,7,13,15,16],找出其中连续出现的数字区间,输出为[“0->2″,”4->5″,”7″,”13″,”15->16”]
function summaryRanges(arr){ //TODO }
-
请实现以下的函数,可以批量请求数据,所有的URL地址在urls参数中,同时可以通过 max 参数控制请求的并发度,当所有请求结束之后,需要执行 callback 回调函数。发请求的函数可以直接使用 fetch 即可
function sendRequest(urls: sring[],max:number,callback:()=>void){ //TODO }
二面:
-
实现一个字符串反转:输入:www.toutiao.com.cn 输出:cn.com.toutiao.www
要求:1.不使用字符串处理函数 2.空间复杂度尽可能小
-
不借助变量,交换两个数。
function swap(a, b) { //TODO }
-
观察者模式与发布订阅者区别,并写出其模型
与项目无绝对相关的问答题
-
vue 事件机制是如何实现的 (https://juejin.im/post/59ca5e975188257a8908959b)
-
vue 的组件通信方式有哪些
-
react fiber 的实现原理 (https://juejin.im/post/5dadc6045188255a270a0f85#comment)
-
vue 响应式数据原理(vue2/vue3/依赖收集/发布订阅/watcher消息队列控制/Vue.set实现)
-
vue 转小程序怎么实现(ast/生命周期对齐/跨平台模块兼容/兼容细节点实现过程)
-
性能指标,如何理解TTI,如何统计,与FID有什么区别,如何实现统计,还聊了很多性能的东西
-
说说你所了解的安全问题及防护方法( Web安全总结(面试必备良药) )
-
说说你知道的设计模式,并举个对应的模式例子
-
未来规划及学习方法
-
你觉得你是怎样拿到京东校招的sp的
-
遇到的最大挑战/过去的最大收获分别是什么
感受
头条的面试官很专业,你不会的或者要思考的,会引导你去思考,也不是一棒子打死,有些问题答得不够好直接挂掉那样,会全面地去看待一个人,挺好的。
与项目相关的问题,问了很多很多,基本上着重看我个人在项目中的角色,做过哪些项目设计/性能优化/项目规模/细节点实现/数据对比等等。
另外,我本人的博客,面试官都看过,似乎都知道我学过什么,知道什么,所以很多我博客上有的东西都没问,甚至我引申到过去,都不让说,有种没机会表现的感觉,哈哈
我面的这个部门,主要是做头条的开发者生态,简单来说,就是做框架/组件/SDK,我个人挺喜欢的,感觉挑战很大,成长很大,持续学习~
持续学习
最大的一个感受就是,在刚毕业的时候,问的基本都是基础,这种刷题就很好使。目前处于一个近3年经验的阶段,项目问得很多很多,项目真的非常非常重要,有亮点的项目太重要了,能体现你的深度及阅历。建议大家在做项目的时候要好好总结有挑战的点,很好使~