Skip to content

作业帮-前端团队

一面

先问了下实习所做的一些工作

手撕代码

  1. 数组去重
js
// 1. {}与{},{a:1}与{a:1},[]与[]算一样的
// [1,2,'1','2',1,null,null,undefined,undefined,{},{},[],[],[1],[1],['1'],['1']]
  1. 合并两个有序数组,计算其中位数
js
// [1,2,4,5,6,8,11] m
// [2,5,6,8,10] n
// 1.偶数个时,取中间两个数的平均值
// 2. 时间复杂度不超过O(m+n)

js

  1. 判断变量类型的方式有几种
  2. Object.prototype.toString.call是如何判断的,讲讲原理
  3. null instanceof Object结果
  4. 了解闭包吗?他有什么缺点,如何优化
  5. 知道强引用与弱引用吗

CSS

  1. 如何实现响应式布局
  2. 如何书写媒体查询
  3. 如何保证h5和pc在显示上的一致性(即不会很突兀切换的时候)

浏览器

  1. 垃圾回收机制了解吗?如何工作的
  2. 回流与重绘是什么
  3. 一个div的高度100px是被其内容撑开的,如果为其添加样式height:50px;overflow:hidden,会触发回流重绘吗?如果其先有样式position:absolute,再添加上述样式会触发哪些?
  4. 使节点脱离文档流的方式有哪些
  5. 浏览器渲染页面的过程,从收到html文档开始
  6. localStorage,cookie,sessionStorage的区别区别
  7. session与cookie有什么关系
  8. cookie有哪些属性
  9. 异步任务有哪些
  10. requestAnimationFrame知道吗,他与setTimeout比较有哪些区别
  11. 了解requestIdleCallback吗?他有什么作用

其它

  1. eslint是如何生成AST的
  2. AST有什么作用

二面

先聊了一下自己简历上的项目,问了所用技术栈,项目背景,难点,项目中担任的角色等等

手撕代码

  1. 实现一个雪花飘落的动画,假设雪花是一个div
  2. 实现一个箭头
  3. 利用面向对象的思想实现一个dialog组件(考虑普通的modal,alert,confirm)等,可以采用原生js或者熟悉的框架(vue/react/angular)

CSS

  1. 如果屏幕要展示多个飘落的雪花飘落的动画,说说你的方案?

我这里讲了canvas与dom节点实现两种方式

  • 这里接着dom节点实现的方案问,如果结合js实现,共有50个dom节点,如何去实现这个全屏的雪花飘落动画
  1. 知道BFC是什么吗?如何触发
  2. 如何使节点脱离文档流

浏览器

  1. 浏览器输入url到页面展示这个阶段发生了什么
  2. 如何做资源预加载,DNS预解析
  3. 什么是跨域,有哪些解决方案
  4. jsonp的原理是什么,需要后端做何配合
  5. 如何开启CORS,后端需要做何配置
  6. 客户端如何判断某个资源是否过期
  7. 如何设置资源强缓存

性能优化

  1. 如何做图片压缩
  2. 图片优化的方案
  3. 如果要有10000张图片需要在一个列表中加载,如何实现(这里应该就是考察虚拟滚动如何实现)

网络

  1. Content-Type这个字段的作用是什么,常用的有哪些
  2. 200,204,301,302,304这些请求头代表什么意思,什么场景下会出现
  3. etag这个字段有什么作用

HR面

  1. 前两面次面试感受怎么样?
  2. 给自己的表现打分1-10分?觉得是哪些点不够好,哪些地方需要完善的?
  3. 在mt的工作内容是什么,简单说一下?
  4. 做了几次code review
  5. 如何印证你的抗压能力强?
  6. 在mt有遇到什么技术/业务难点吗?如何解决的?
  7. 对未来的规划是什么?
  8. 你觉得一个优秀的FE需要具备哪些能力?
  9. 通过何种渠道/方式去提升自己技术能力的
  10. 分享一个你觉得你做的最有成就感的一件事
  11. 在选择第一份工作的时候你会关注哪些方面
  12. 你考研吗?
  13. 最近有参加哪些面试呀?
  14. 对zyb的了解有多少
  15. 什么驱使你去投的zyb
  16. 然后开始查户口(问家庭情况)
  17. 平时的兴趣爱好
  18. 你觉得自己的优势与不足有哪些