阅读 1449

前端社招神策数据二轮面经

背景

由于所在行业受政策的影响,公司考虑转型,而且为了节省成本,进行了裁员,我不幸在此次的优化名单中。

虽然拿到了裁员的赔偿,在休息几天后,我还是拿起了书本,开始复习找工作。

网上五花八门的面试题很多,大部分都仿佛还是几年的题库。再想想这几年的新技术点,发现自己的知识体系还是有很多遗漏的。

于是按照找工作的习惯,从原型链开始,函数继承,页面渲染流程,页面性能优化,Promise,ES6,CSS,前端常见手写实现,算法……把常见的知识点简单过了一遍。之后就是开始面试找状态。

本次的神策数据面经总结只发记录的面试题,不加自我的分析和答案了.有些问题属于项目经验相关的面试题,可能仁者见仁,没有标准答案还需要根据自身情况做准备.还有一些技术性的问题,在小程序前端面试题宝典(点我)都能找到详细的答案解析就不一一列举了

一面

这次依旧是视频面试,不过面试官还是让先进行自我介绍,终于找回若干年前的面试感觉了。

简单的自我介绍后,面试官又问了印象最深的一个项目,又具体问了系统在实现过程中的难点。建议大家在面试前,对自己简历中涉及到的项目都进行简单的回顾。

接着问了一些前端基础知识:

  • 页面渲染的过程
  • 事件循环是什么?异步事件是怎么进行的回调?
  • 跨域的解决方法?
  • CORS是需要后端做什么?
  • http请求的类型,除了GET、POST外,还有什么?
  • 你提到的OPTION请求是什么?跨域时先发一个OPTION请求有什么用?
  • 怎么提高react的渲染性能?
  • react hooks如何减少渲染?
  • webpack的loader是怎么工作的?输入输出是什么?sass文件是怎么转成css文件的?sass-loader、css-loader、style-loader的作用分别是什么?处理顺序是怎么样的?
  • 页面上的图片是在什么时候进行加载?
  • html中的img和css中的img有什么不同?
  • script标签中的async和defer有什么不同?
  • base64转换图片,为什么会有尺寸的限制?为什么base64转换后,体积会变大?
  • ...

之后还有几道编程题:

// 实现一个 calc 方法,可以将输入的数拆解为尽可能多的乘数,所有数相乘等于输入数。
// console.log(calc(2));
// // [2]
// console.log(calc(8));
// // [2, 2, 2]
// console.log(calc(24));
// // [2, 2, 2, 3]
// console.log(calc(30));
// // [2, 3, 5]

// 如下表格,点击 .date 后使表格按日期排序,当前是正序则改为倒序,当前是倒序则改为正序,要求以原生 JavaScript 实现。
<table id="c">
  <thead>
    <tr>
      <th class="date">日期</th>
      <th class="total">总次数</th>
    </tr>
  </thead>
  <tbody id="tbody">
    <tr>
      <td>2017年10月23日</td>
      <td>68,112</td>
    </tr>
    <tr>
      <td>2017年8月6日</td>
      <td>68,020</td>
    </tr>
    <tr>
      <td>2017年11月11日</td>
      <td>69,433</td>
    </tr>
    <tr>
      <td>2016年5月12日</td>
      <td>69,699</td>
    </tr>
    <tr>
      <td>2017年1月18日</td>
      <td>42,565</td>
    </tr>
  </tbody>
</table>
复制代码

二面

大概一周后,收到神策的二面通知。

神策的二面依旧是远程面试,面试一开始,双方就相互做了简单地自我介绍,简单了解了我做的一些项目。

二面的面试官是一个很有意思的人,所有问题都问的很深。

先是原型、原型链这块,还让手写不同对象的原型等于什么

  • [[proto]] 和 prototype 什么是什么?
  • 原型链是顺着 prototype 还是 [[proto]] 往下找?
  • Object.prototype === ?
  • Function.prototype === ?
  • Object === ?
  • Function === ?

中间还有一些题目给忘了,比较印象的是下面这个浏览器渲染的题,里面很有争议的一个点是面试官觉得就是js引擎线程和渲染线程是同一个线程,让我不要完全相信理论知识,我们俩就这个问题争论了好半天。

  • 浏览器是怎么渲染页面的?
  • 渲染过程中的布局和绘制有什么区别?
  • 绘制是做了什么?
  • 图层合并发生在哪一步?
  • 怎么生成新的图层?
  • js引擎线程和渲染线程是同一个线程吗?如果不是同一个线程,怎么做到互斥的?
  • dpr是什么?他是固定的吗?

二面之后就没有了然后,这一轮二面也是整个找工作过程中体验最差的几次面试之一。

总结

神策的一面还是比较基础,大部分问题从实际工作经验的角度提出的,都是一些比较实在的问题。二面的问题也很基础,但是问的太深,我回答的不是很好,建议大家还是在找工作前多看看红宝书,避免和我一样在基础问题被问倒。

上面题目的答案,我都总结到了最近开发的一个面试题小程序面试题小程序中:前端面试题宝典,里面已经搜集了600+常见的前端面试题的题目和答案,希望能够帮助到大家更快的进行复习。

也欢迎访问我们其他的面经:

明略前端三面面经(技术二面+HR面)

字节跳动商业化前端面试面经

美团四轮面试面经

爱奇艺前端二面面经

也欢迎关注我们团队另一个掘金账号哦:

掘金前端面试题宝典

文章分类
前端
文章标签