今日头条前端面试过程与面试题

头条的面试业界最难,为准备头条的面试,我刷了好几天的题目,虽然最后被拒,但是在准备过程中知道了很多开发中被忽略的原理问题。这给我之后的面试打下了很好的基础。

到了头条总部,前台给了一套题。三道简答,三道编程题

简答题:

  • 什么是函数节流,为什么要使用函数节流,如何实现
  • 描述一下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

  • 求二叉数所有路径总合的数组

    class Node {
      constructor(value = null, left = null, right = null){
          this.value = value;
          this.left = left;
          this.right = right
      }
    }
    

const N = function(value, left = null, right = null) { return new Node(value, left, right) }

var tree = N( 'a', N('b', N('c')), N('d', N('e'), N('f', N('g'), N('h',N('i'),N('j')))) )

let allArr = []; function total(tree, arr = []){

if(tree == null) return false;

arr.push(tree.value);

if (tree.left !=null) total(tree.left, [...arr])
if (tree.right !=null) total(tree.right, [...arr])

if(tree.left == null && tree.right ==null){
    allArr.push(arr);
}

} total(tree, []); console.log(allArr)


- **封装一个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。

作者:susiwen8

来源:CSDN

链接:https://blog.csdn.net/susiwen8/article/details/82701235

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

交流请添加微信: qian-qianyu