2021年中面试题汇总

239 阅读6分钟

喜马拉雅

一面

  1. 类型判断方式?
    答:typeof、Object.prototype.toString.call

  2. 知道instanceOf吗?
    答:判断实例原型链上是否存在构造函数的显式原型

  3. 重排、重绘、引起重排的操作、如何减少重排

  4. 哪些css可以开启硬件加速

  5. css垂直水平居中

  6. url输入之后发生的事情?html渲染的过程(layout、painting过程忘了说)

  7. react setState同步还是异步

  8. useEffect为什么不能在if 语句中使用

  9. react使用的版本?useSelect

  10. react-redux connect原理?为什么能将store上的内容以props的方式传到组件上? react-redux中store变化是如何通知组件变化的

  11. react fiber为什么是父子兄弟节点的顺序渲染的?如果再fiber任务中断的时候,fiber数据变化了,react会重新开始渲染还是如何?v16之前的组件渲染有什么问题?为什么不能中断?

  12. webpack哪些操作可以优化包的体积?如何分包?如何加速打包速度?

  13. treeShaking的作用?哪些编码中的副作用会影响treeShaking?编码中如何减少副作用

  14. 在a.js中 export default { a, b}, 在b.js中import {a, b},但是只使用a,这样会影响treeShaking吗? 14.1 如何改进?在a.js中 分开导出a,b (export const a=xxx, export const b=yyy)

14.1.1 基于14.1的改进中,在b.js中这样引用:import a from 'a.js'; import * as aModule from 'a.js' ,这样会影响treeShaking 吗?(答案:在webpack 2之前会影响,之后不会影响)

  1. 什么是跨域?解决方案?
  2. script异步引入?async, defer,这两种可以保证按照引入顺序执行吗?
  3. 缓存?强缓存,协商缓存?哪些字段?优先级?
  4. 二级域名不同的域名会产生跨域吗?如a.baidu.com 和b.baidu.com?
  5. fetch请求如何携带cookie?
  6. 为什么有的跨域请求会发送两次?option
  7. cookie共享?
  8. 箭头函数和普通函数的区别?为什么箭头函数不能作为构造函数

二面(小组组长面)

  1. 深拷贝
  2. 介绍下项目、难点、收获

达达

一面(电话面试)

  1. 碰到的移动端和PC端的兼容性问题有哪些?(简历里提到了做过移动端和PC端的项目)
  2. 项目的发布,如何保证用户在发布期间能正常访问页面?非覆盖式发布。可参考知乎这个话题下的回答www.zhihu.com/question/20…
  3. 因为提到了用vue做了移动端项目的前后端分离,问为啥不用vue ssr? 不了解,放弃
  4. 如何为项目选型?用vue还是react(高频问题)
  5. useHook的原理,为什么不能在if语句中使用hook?(会问使用的是react的哪个版本)
  6. 说下react fiber
  7. 简述浏览器事件循环?微/宏任务有哪些?
  8. 简述下闭包
  9. 重绘和回流
  10. 事件模型(事件冒泡&事件捕获)
  11. 函数柯里化
  12. 简述BFC以及哪些属性可以形成BFC
  13. 继承
  14. 设计模式
  15. 前端发展趋势
  16. 个人职业规划
  17. 算法(不了解,不回答)
  18. 前端常见的数据结构?没get到这个问题的点,可能他想问知道哪些数据结构吧(栈、队列、树、链表、数组)

二面

需要去现场,没去

永辉超市

一面(电话面试)

  1. Java与javascript的关系 == 雷锋和雷峰塔的关系 (说实话,听到这个问题,有点被雷到)
  2. 用的react的版本?react16做了什么?其实就像问下虚拟dom到fiber的变化
  3. fiber数据结构渲染的顺序?根节点 -> 子节点 -> 子节点(无子节点) -> 兄弟节点。。。。
  4. 简述react diff的比较过程
  5. 函数式组件与类组件的区别
  6. 面向对象的特征 - 封装、继承、多态
  7. 继承方式有哪些 - 继承的几种实现方式
  8. es5的继承与es6的class继承有什么区别
    1. class必须使用new命令操作,直接当做函数调用会报错;es5的构造函数可以当做函数运行
    2. class不存在变量提升,所以必须先定义class才能调用,es5可以在调用函数后定义构造函数
    3. 继承的实现方式不同
  9. 清除浮动的方式
  10. http与https的区别?加密方式、对称加密、非对称加密、混合加密(对称+非对称)。为什么用混合加密?因为对称加密的加解密过程比较快,非对称加密的加解密过程比较慢
  11. webpack的打包过程
  12. babel的流程
  13. 项目难点
  14. 快速排序和冒泡排序的复杂度?分别是O(nlogn)、O(n2)

贝壳

一面(电话面试)

  1. display:none 与visibility:hidden的性能比较?前者引起重排,后者引起重绘,后者性能更好
  2. css 居中布局的实现
  3. cookie与localstorage的比较(存储在哪?)
  4. 什么是跨域?如何解决跨域?
  5. 状态码301、302、304
  6. 缓存分类?如何不使用缓存
  7. BFC
  8. null 与undefined的区别?undefined === undefined => true
  9. 数组去重方式?
  10. 常用的数组方法?说下reduce的作用
  11. 字符串相关方法?写个正则用字符串的repalce方法去除掉字符串中的空格
  12. 箭头函数与普通函数的区别
  13. react 父组件如何触发子组件组件的按钮上的事件?使用ref
  14. react 如何管理数据?
  15. 为什么用redux? 将数据挂载在window上,子组件可以访问到吗?如果可以为什么不这样做?(挂在window上称为全局对象,无法管控数据的更改,数据发生变化难以追踪)
  16. 封装过组件吗?
  17. react 与 vue 的选择
  18. webpack css文件loader配置?如果单纯的将css文件打包如何做?(使用htmlWebpackPlugin生成文件)

二面

部门后端面试的,主要聊了下项目,以及以后的职业规划。等待三面的时候,他们面到了合适的人。。。

平安健康

一面

  1. 有哪些数据类型?typeof、Object.prototype.toString.call(obj)
  2. 原型链
  3. 数组常用方法?map和forEach的区别
  4. 获取原型的方法? getPrototypeOf, obj.proto
  5. 数组随机排序
  6. React hooks? 说了useState和useEffect的原理
  7. 项目中遇到的问题
  8. 对于移动端项目和PC端项目怎么看
  9. 构造函数new 的过程

二面(用人组组长面)

主要聊了下项目