民生银行二面

226 阅读2分钟

1.当后端传给前端的值存在精度问题,前端应该如何解决

  • 运算前先乘以10的n次幂,运算结算再除去
  • 使用toFixed取小数点后几位,默认会五舍六入
  • 将一个浮点数转成整数,拿到对应整数和倍数。之后进行运算,结束后再除以倍数

2.react中class的ref与函数的ref有什么区别

  • 函数用useRef,class用createRef声明

3.useEffect的依赖项发生改变后,return会执行吗

  • 无依赖项时,首次加载会执行useEffect第一个参数函数的return外的部分,每次更新时会先执行return内部分,再执行return外的部分。
  • 依赖项为空数组([])时,会在页面首次加载时运行useEffect 第一个参数的那个函数,类似于执行componentDidMount,且只执行一遍,函数内return 的函数会在页面即将销毁时或移除组件时执行,类似于执行componentWillUnMount
  • 依赖项不为空时,首次加载会执行useEffect第一个参数函数的return外的部分,每次依赖项更新时会先执行return内部分,再执行return外的部分 blog.csdn.net/CX345678/ar…

4.useEffect的渲染机制和fiber的关系

juejin.cn/post/720333… 多看几遍,直至完全理解

5.浏览器的事件机制

  • 由于js是单线程,为防止阻塞渲染,内部任务分为同步任务和异步任务
  • 其中异步任务又分为宏任务和微任务
  • 宏任务和微任务会各自维护一个任务队列
  • 当一个宏任务出队执行后,其对应的微任务队列里的所有任务会被一次性执行完。循环往复
  • 常见的宏任务有setTimeout、setInternal
  • 常见的微任务有promise

6.BFC是什么

  • BFC是指块级作用域上下文
  • 其实它就是一个完全独立的空间(布局环境),其内的子元素不会影响到外面的布局
  • 其内的子元素会垂直排列
  • 属于同一个BFC的两个相邻的标签外边距会发生重叠(用两个BFC可以解决margin塌陷)
  • 可以触发BFC的条件
    • overflow除了visible以外的值
    • position为absolute或者fixed
    • body根元素
    • 浮动元素:float除none以外的值