2023.3面试题(一)-厦门天阳-React为主

581 阅读3分钟

本文主要介绍一下面试题,部分答案写的不会非常详细,主要提供一些思路、方向,该是八股文的大家自行百度或者论坛搜索,咱就不废话了。

前言

金三银四,来波面试蹭个热度。

本次面试的是厦门天阳宏业科技,

项目:主要是做建行外包项目

福利待遇:一般,其中缴税起征点是15k,因为公司注册在拉萨,算是一个优势

面试岗位:高级前端

面试方式:视频面试、2次面试

主要考核技术栈:React

废话不多说,咱就开始

1、自我介绍

这个因人而异,把自我情况介绍一遍、项目介绍一遍,介绍一下自己的项目经验和优势。。。

2、面试题

1、虚拟DOM的优势

这里谈及2点:带来性能的提升,服务器端渲染(SSR)渲染的优势

个人理解:第二点一般人应该不是很清楚,毕竟做ssr 渲染的人不多了

2、Diff算法的原理

  • 同一层级的节点互相比较
  • 类型是否相同,不同替换整个组件
  • 通过 key 来区分是否需要创建,删除,或者是移动

3、React和Vue之间Diff算法的不同

react 会自顶向下全diff。vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。

具体再展开

react 是基于fiber架构的,2次循环比较

vue是组件间比较

4、什么是受控组件、非受控组件

标签被 state 接管的就是受控组件。举例 input框。。。

setState是同步的还是异步的

setState与调用时的环境相关

  • 在合成事件 和 生命周期钩子(除componentDidUpdate) 中,setState是异步的;

因为他的调用顺序在组件更新之前,没法拿到新的数据,造成异步现象

  • 在 原生事件 和setTimeout 中,setState是同步的,可以马上获取更新后的值;

5 类组件的生命周期

把下面这张表讲清楚,常用的讲出来,不常用的可讲可不讲

image.png

6、类组件和函数组件的区别

相同点

都是返回要在页面中渲染 React 元素

不同点

  • 设计思想不同,函数式组件的根基是函数式编程,更符合React团队的编程思维
  • 函数式组件不需要this,避免this指向的心智负担
  • 函数式组件 能够更合理的代码拆分
  • 能够优雅的复用组件代码,避免嵌套过深

7、redux的三个原则

  • 单一数据源

    • 所有的 state 存在一个 store 中
  • State是只读的

    • 唯一改变 state 的方法就是触发 action
  • 使用纯函数来进行修改

    • 为了描述 action 如何改变 state tree ,你需要编写 reducers

8、 a.b.c 和a['b']['c'] 哪个性能高

a.b.c 高

9、for、forEach、map 哪个性能高

for > forEach > map

因为for原生,forEach 有入参,map有入参有返回值

10、什么是防抖节流

防抖:n秒后才执行 节流:n秒内执行一次

11、前端怎么实现跨域

网上有9种方案,常用的有这几种

  • 代理跨域,本地起一个服务器,与远程服务器通信,服务器之间通信不存在跨域。本地页面与本地服务器也不存在跨域
  • websocket 不存在跨域
  • iframe 不会跨域

12、Echarts的核心是什么

通过配置dataset的映射规则,

让dataset里source数据映射到类目轴和各个系列之间

dataset(数据集)

使用dataset使 数据与配置 进一步分离,数据可以被单独管理,被多个series复用。

谢谢!

结束