Published on

React interview Base

Authors

下面代码输出什么?

for (var i = 0; i < 3; i++) {
  setTimeout(function log() {
    console.log(i)
  }, 1000)
}

下列关于vite实现原理。不正确的是?

  • A esbuild使用go这样语言编写,cpu密集下更具性能优势,编译速度更快
  • B 充分利用http缓存做优化,依赖(不会变动的代码)部分用max-age,immutable 强缓存
  • C 服务器接收到的所有请求都会编译对应的文件,并将ESM源码返回给浏览器
  • D 在预构建阶段將依赖中各种其他機续化规范(CommonJS、UM) 换 成ESM,以提供给浏览器

关于react中的diff算法,下面说法不正确的是?

  • A 时间复杂度能达到O(1)
  • B 会帮助我们计算出 Virtual DOM 中真正发生变化的部分
  • C 两棵树只对同一层级节点进行比较,只要该节点不存在了,那么该节点与其所有子节点会被完全删除,不在进行进一步比较
  • D 只需要遍历一次,便完成对整个DOM树的比较

在react中,各组件之间是如何通信的?【多选】

  • A.兄弟:两个组件并列存在于父组件中,需要金属数据进行相互传递
  • B.父与子:父组件包裹子组件,父组件向子组件传递数据
  • C. 无直接关系:两个组件并没有直接的关联关系,处在一棵树中相距甚远的位置,但需要共享、传递数据
  • D.子与父:子组件存在于父组件之中,子组件需要向父组件传递数据

关于函数组件和类组件的说法,正确的是? 【多选】

  • A. 可以为类组件定义ref属性
  • B. 函数组件具有生命周期方法
  • C. 一个函数组件接收props作力参数,返回代表这个组件UI的React元素结构
  • D. 可以为函数组件定义ref属性

关于useEffect(callback,[source]),下面说法错误的是【单选】

  • A. [source] 参数传口时,外部的函数只会在初始化时调用一次,返回的那个函数也只会最终在组件卸载时调用一次
  • B. [source] 参数有值时,只会监听到数组中的值发生变化后才优先调用返回的那个函数,再调用外部的函数
  • C. callback是一个函数,是组件要执行的副作用,可以不传
  • D. [source] 可以不传

下列哪些做法不能对vue的性能进行优化 【单选】

  • A.扁平化Store数据结构,合理使用持久化Store数据
  • B. 合理地组织代码结构
  • C. 为item设置唯一key值
  • D. 内容类系统的图片资源按需加载(v-lazy、滚动到可视区域加载等)

关于 HTTP Cookie,下面说法不正确的是 【单选】

  • A. Cookie 以加密的形式在浏览器和服务器中传递
  • B. Cookie 的有效期可以通过 Expires 和Max-Age 两个属性来设置
  • C. Cookie 主要用于会话状态管理,个性化设置,浏览器行为跟踪等方面
  • D. Cookie 本质上就是浏览器里面存储的一个很小的文本文件,内部以键值对的方式来存储

关于react高阶组件(HOC),下面说法正确的是 【单选】

  • A. HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式
  • B. HOC传递给被包裹组件的props容易和被包裹后的组件重名,进而被覆盖
  • C. HOC可以复用逻辑,不影响被包裹组件的内部逻辑
  • D.高阶组件可以传递所有的props,但是不能传递ref