神策两面面经

背景

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

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

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

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


















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

相关推荐

自从我室友在计算机导论课上听说了“刷&nbsp;LeetCode&nbsp;是进入大厂的敲门砖”,整个人就跟走火入魔了一样。他在宿舍门口贴了一张A4纸,上面写着:“正在&nbsp;DP,请勿打扰,否则&nbsp;Time&nbsp;Limit&nbsp;Exceeded。”日记本的扉页被他用黑色水笔加粗描了三遍:“Talk&nbsp;is&nbsp;cheap.&nbsp;Show&nbsp;me&nbsp;the&nbsp;code。”连宿舍聚餐,他都要给我们讲解:“今天的座位安排可以用回溯算法解决,但为了避免栈溢出,我建议用动态规划。来,这是状态转移方程:dp[i][j]&nbsp;代表第&nbsp;i&nbsp;个人坐在第&nbsp;j&nbsp;个位置的最优解。”我让他去楼下取个快递,他不直接去,非要在门口踱步,嘴里念念有词:“这是一个图的遍历问题。从宿舍楼(root)到驿站(target&nbsp;node),我应该用&nbsp;BFS&nbsp;还是&nbsp;DFS?嗯,求最短路径,还是广度优先好。”和同学约好出去开黑,他会提前发消息:“集合点&nbsp;(x,&nbsp;y),我们俩的路径有&nbsp;k&nbsp;个交点,为了最小化时间复杂度,应该在&nbsp;(x/2,&nbsp;y/2)&nbsp;处汇合。”有一次另一个室友低血糖犯了,让他帮忙找颗糖,他居然冷静地分析道:“别急,这是一个查找问题。零食箱是无序数组,暴力查找是&nbsp;O(n)。如果按甜度排序,我就可以用二分查找,时间复杂度降到&nbsp;O(log&nbsp;n)。”他做卫生也要讲究算法效率:“拖地是典型的岛屿问题,要先把连通的污渍区块都清理掉。倒垃圾可以用双指针法,一个指针从左往右,一个从右往左,能最快匹配垃圾分类。”现在我们宿舍的画风已经完全变了,大家不聊游戏和妹子,对话都是这样的:“你&nbsp;Two&nbsp;Sum&nbsp;刷了几遍了?”“别提了,昨天遇到一道&nbsp;Hard&nbsp;题,我连暴力解都想不出来,最后只能看题解。你呢?”“我动态规划还不行,总是找不到最优子结构。今天那道接雨水给我整麻了。”……LeetCode&nbsp;真的害了我室友!!!
老六f:编程嘉豪来了
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务