今日头条前端面试过程与面试题
头条的面试业界最难,为准备头条的面试,我刷了好几天的题目,虽然最后被拒,但是在准备过程中知道了很多开发中被忽略的原理问题。这给我之后的面试打下了很好的基础。
到了头条总部,前台给了一套题。三道简答,三道编程题
简答题:
- 什么是函数节流,为什么要使用函数节流,如何实现
- 描述一下JS 的new操作符具体做了什么
- 简述document和window两个对象区别
编程题:
JS编程实现简单模板引擎变量替换
JS编码实现一个render方法,使得可议这样调用:
const year = ‘2017’;
const month = ‘09’;
const day = ‘21’;
const str = render(‘year−year−{month}-${day}’)({year,month,day});
console.log(str)//输出2017-09-21求二叉树是否存爱和值为N的路径
从二叉树的根到叶子节点称为一条路径,路径上的每个节点的value之和为路径和值,是否存在一条和值为N的。
封装一个ajax请求库实现get和post方法
ajax.get(url,options).then(success, fail);
ajax.post(url,data,options).then(success,fail);
答题时间是40分钟,其实我拿到试卷扫了一遍我就知道这面试会凉。本着来都来了的精神,和见识最难面试,硬着头皮做了一下,只有模板那个一点头绪都没有。
答完题面试官来了,年轻一看就是个学霸。看了下我的笔试答案,我口述了思路,他讲了二叉树的思路。我做的时候是遍历整个二叉树,他说可以用深度。由于算法实在不是我的强项,我之前是学电路设计的,所以大家应该明白。我估计面试官也没有见过笔试题,也没有深究下去开始正式面试。
不得不说头条确实高素质,问的问题很专业,也很基础。先问了网络协议,说一下TCP,我回答三次握手,他笑着说这是老掉牙的东西,想听听别的,我说没学过网络,他就进入下一题环节。首先要我手写一个duplicate字符串,给一个字符串,假如’abc’,输出’abcabc’, 我在原型链加了一个duplicate函数,返回this+this.接着就是经典的异步输出问题,他自己设计了好几个setTimeout问结果,我给出答案,他要我画出任务执行队列,我不知道异步执行队列是一个单独的执行队列,所以当时没画出,得亏头条问了,第二天我去另一家面试也问到了这个问题,我很自信的答出来。接下来问了个函数柯里化,其实考的是arguments,add(a)(b)(c)和add(a,b,c)都能输出a+b+c。事件流,s2元素是s1元素的子元素,捕获和冒泡顺序。在这个问题还出个小插曲,面试官听错我的答案,跟我讨论了一阵子,我解释难道不是先从上至下先捕获然后从下至上冒泡吗,他想了想说我是对的,吓了我一跳。CSS问了经典的垂直居中,BFC,BFC条件。
面试结束后,我知道肯定没过,就跟面试官说刷了很多题,面试官跟我说不光要刷题还要弄懂题目的原理。面试虽没过,但收获很多,我真心觉得过了头条的面试,其他面试都是小case。
阅读更多- 今日头条前端面试总结
- 今日头条前端面试总结
- 三维重建面试13X:一些算法试题-今日头条AI-Lab
- 今日头条实习生面试
- 今日头条面试算法题——确定ABCDE五个学校名次
- 总结前端面试过程中最容易出现的问题
- 总结前端面试过程中最容易出现的问题
- 今日头条 CEO 张一鸣:面试了 2000 个年轻人,混得好的都有这 5 种特质
- 今日头条面试总结——闭包和this
- 【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...
- 今日头条2017实习生面试(三轮)
- java程序员最难面试之“今日头条”
- 记一次措手不及的面试--今日头条(一面、二面、三面)
- 总结前端面试过程中最容易出现的问题
- 今日头条面试
- 今日头条2018年1月8日面试
- 今日头条C++后台开发实习面试总结
- 今日头条面试经验分享
- 今日头条笔试【编程题 + 分析过程发现数学规律 + 回溯法】
- 2018年各大互联网前端面试题五(今日头条)