乐博士中国 - 前端面试
面试时间:2023-04-07
公司全称:广东乐博士教育装备有限公司
公司位置:广州海珠区广东乐博士教育装备有限公司2栋4楼
面试题
什么是虚拟 DOM?为什么要使用虚拟 DOM?
查看答案
概念:虚拟DOM是一个 JS 对象,通过对象的方式描述 DOM 结构。
目的:1. 减少页面渲染次数,提升渲染性能;2. 实现跨平台。
简述下 React 的生命周期?
查看答案
组件挂载时:
- constructor()
- static getDerivedStateFromProps()
- render()
- componentDidMount()
组件更新时:
- static getDerivedStateFromProps()
- shouldComponentUpdate()
- render()
- getSnapshotBeforeUpdate()
- componentDidUpdate()
组件卸载时:
- componentWillUnmount()
错误处理:
- static getDerivedStateFromProps()
- componentDidCatch()
笔试题
如何定义一个变量
查看答案
第一种:const 变量名
第二种:let 变量名
第三种:var 变量名
谈谈对原型链的理解
查看答案
当访问对象的某个属性或者方法时,如果在对象自身上找不到,就会到对象的原型上查找,如果也找不到,就会到原型的原型上查找,一直找到顶层为止,就构成了一条链路,这就是原型链。
谈谈对闭包的理解
查看答案
函数内部访问函数外包的局部变量。
求数组中元素最小值和最大值
查看答案
方法一:sort()
排序,排序后第一个为最小值,最后一个为最大值。
方法二:假设第一个为最小值(或最大值),通过循环比较替换掉初始的假设值。
方法三:Math.min()
获取最小值,Math.max()
获取最大值。
JS 继承的方式有哪些
查看答案
共有 6 种继承方式:原生链继承、构造函数继承、组合式继承、原型式继承、寄生式继承、寄生组合式继承。寄生组合式继承是这 6 种里面最优的继承方式,在 ES6 中也提供继承的关键字 extends 更方便的实现继承。
简述下 React 的事件代理机制?
查看答案
事件处理函数并不会绑定到真实的节点上,而是绑定到 id="root"
的根节点中,通过一个事件监听器维护一个映射来保存所有组件内部的事件监听和处理函数。
当组件挂载或卸载时,只是在统一的事件监听器上插入或删除对象。
当事件发生时,首先会经过统一的事件监听器,然后在映射里找到真正的事件处理函数并执行。