神策两面面经

背景

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

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

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

于是按照找工作的习惯,从原型链开始,函数继承,页面渲染流程,页面性能优化,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+常见的前端面试题的题目和答案,希望能够帮助到大家更快的进行复习。


















#前端##神策数据##面试题目#
全部评论

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务