喜马拉雅
一面
-
类型判断方式?
答:typeof、Object.prototype.toString.call -
知道instanceOf吗?
答:判断实例原型链上是否存在构造函数的显式原型 -
重排、重绘、引起重排的操作、如何减少重排
-
哪些css可以开启硬件加速
-
css垂直水平居中
-
url输入之后发生的事情?html渲染的过程(layout、painting过程忘了说)
-
react setState同步还是异步
-
useEffect为什么不能在if 语句中使用
-
react使用的版本?useSelect
-
react-redux connect原理?为什么能将store上的内容以props的方式传到组件上? react-redux中store变化是如何通知组件变化的
-
react fiber为什么是父子兄弟节点的顺序渲染的?如果再fiber任务中断的时候,fiber数据变化了,react会重新开始渲染还是如何?v16之前的组件渲染有什么问题?为什么不能中断?
-
webpack哪些操作可以优化包的体积?如何分包?如何加速打包速度?
-
treeShaking的作用?哪些编码中的副作用会影响treeShaking?编码中如何减少副作用
-
在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之前会影响,之后不会影响)
- 什么是跨域?解决方案?
- script异步引入?async, defer,这两种可以保证按照引入顺序执行吗?
- 缓存?强缓存,协商缓存?哪些字段?优先级?
- 二级域名不同的域名会产生跨域吗?如a.baidu.com 和b.baidu.com?
- fetch请求如何携带cookie?
- 为什么有的跨域请求会发送两次?option
- cookie共享?
- 箭头函数和普通函数的区别?为什么箭头函数不能作为构造函数
二面(小组组长面)
- 深拷贝
- 介绍下项目、难点、收获
达达
一面(电话面试)
- 碰到的移动端和PC端的兼容性问题有哪些?(简历里提到了做过移动端和PC端的项目)
- 项目的发布,如何保证用户在发布期间能正常访问页面?非覆盖式发布。可参考知乎这个话题下的回答www.zhihu.com/question/20…
- 因为提到了用vue做了移动端项目的前后端分离,问为啥不用vue ssr? 不了解,放弃
- 如何为项目选型?用vue还是react(高频问题)
- useHook的原理,为什么不能在if语句中使用hook?(会问使用的是react的哪个版本)
- 说下react fiber
- 简述浏览器事件循环?微/宏任务有哪些?
- 简述下闭包
- 重绘和回流
- 事件模型(事件冒泡&事件捕获)
- 函数柯里化
- 简述BFC以及哪些属性可以形成BFC
- 继承
- 设计模式
- 前端发展趋势
- 个人职业规划
- 算法(不了解,不回答)
- 前端常见的数据结构?没get到这个问题的点,可能他想问知道哪些数据结构吧(栈、队列、树、链表、数组)
二面
需要去现场,没去
永辉超市
一面(电话面试)
- Java与javascript的关系 == 雷锋和雷峰塔的关系 (说实话,听到这个问题,有点被雷到)
- 用的react的版本?react16做了什么?其实就像问下虚拟dom到fiber的变化
- fiber数据结构渲染的顺序?根节点 -> 子节点 -> 子节点(无子节点) -> 兄弟节点。。。。
- 简述react diff的比较过程
- 函数式组件与类组件的区别
- 面向对象的特征 - 封装、继承、多态
- 继承方式有哪些 - 继承的几种实现方式
- es5的继承与es6的class继承有什么区别
- class必须使用new命令操作,直接当做函数调用会报错;es5的构造函数可以当做函数运行
- class不存在变量提升,所以必须先定义class才能调用,es5可以在调用函数后定义构造函数
- 继承的实现方式不同
- class必须使用new命令操作,直接当做函数调用会报错;es5的构造函数可以当做函数运行
- 清除浮动的方式
- http与https的区别?加密方式、对称加密、非对称加密、混合加密(对称+非对称)。为什么用混合加密?因为对称加密的加解密过程比较快,非对称加密的加解密过程比较慢
- webpack的打包过程
- babel的流程
- 项目难点
- 快速排序和冒泡排序的复杂度?分别是O(nlogn)、O(n2)
贝壳
一面(电话面试)
- display:none 与visibility:hidden的性能比较?前者引起重排,后者引起重绘,后者性能更好
- css 居中布局的实现
- cookie与localstorage的比较(存储在哪?)
- 什么是跨域?如何解决跨域?
- 状态码301、302、304
- 缓存分类?如何不使用缓存
- BFC
- null 与undefined的区别?undefined === undefined => true
- 数组去重方式?
- 常用的数组方法?说下reduce的作用
- 字符串相关方法?写个正则用字符串的repalce方法去除掉字符串中的空格
- 箭头函数与普通函数的区别
- react 父组件如何触发子组件组件的按钮上的事件?使用ref
- react 如何管理数据?
- 为什么用redux? 将数据挂载在window上,子组件可以访问到吗?如果可以为什么不这样做?(挂在window上称为全局对象,无法管控数据的更改,数据发生变化难以追踪)
- 封装过组件吗?
- react 与 vue 的选择
- webpack css文件loader配置?如果单纯的将css文件打包如何做?(使用htmlWebpackPlugin生成文件)
二面
部门后端面试的,主要聊了下项目,以及以后的职业规划。等待三面的时候,他们面到了合适的人。。。
平安健康
一面
- 有哪些数据类型?typeof、Object.prototype.toString.call(obj)
- 原型链
- 数组常用方法?map和forEach的区别
- 获取原型的方法? getPrototypeOf, obj.proto
- 数组随机排序
- React hooks? 说了useState和useEffect的原理
- 项目中遇到的问题
- 对于移动端项目和PC端项目怎么看
- 构造函数new 的过程
二面(用人组组长面)
主要聊了下项目