场景题

5 min

js

  • 浅拷贝和深拷贝
  • 原型和原型链
  • 函数柯里化
  • BOM 和 DOM
  • for in 和 for of
  • 哪些地方不能箭头函数
  • 创建一个对象的过程
  • 防抖节流
  • 写一个自定义事件
  • 前端怎么获取页面上哪个元素是最多的
  • flex: 1 是什么意思
  • BFC
  • 聊一下 js 事件循环
  • requestAnimationFrame
  • requestIdleCallback
  • 设计模式了解过吗 写一个发布订阅
  • webwoker
  • 写一个 Promise.all 介绍一下 Promise 以及用法,async/await
  • 闭包
  • 页面菜单切换
  • es module 和 commonjs
  • 假设我的 promise 里面全部都是同步代码,promise 里面没有做任何异步,不写 pending 是不是也可以?
  • 在 setTimeout 里产生一个 promise,当前的 promise 会在当前次执行掉吗?还是在下一次循环里执行?
  • 解释一下 ES6 模块化的解析过程, 是怎么运作的
  • 在 ES6,let 和 const
  • promise(A).catch(f1).then(f2) ,f1 执行后 f2 会执行吗,为什么

react

  • react diff
  • redux 源码
  • hooks useEffect/useCallback/useMemo
  • react fiber, react 18 并发
  • useEffect 原理, 先执行还是 dom 先渲染,生命周期的深入理解,useEffct vs useLayoutEffect
  • 纯函数 高阶函数 高阶组件
  • 父组件和子组件渲染过程
  • 函数组件和类组件
  • useCallback vs useRefs
  • react 相比于原生 js 或者 jq,说出觉得最重要的一个特点是什么
  • 组件卸载怎么卸载
  • 受控组件和非受控组件,非受控组件怎么操作
  • 纯函数里发一个请求,那么这么函数还是纯函数吗
  • react 中设置一个随机 key 会怎么样
  • react 中一个父组件,两个子组件,一个传 props,一个不传 props,父组件重新渲染,两个子组件会不会都重新渲染
  • vue vs react
  • 单向数据流和双向数据绑定的原理,区别
  • props 数据流向
  • ref 和 reactive 区别
  • react 白屏检测
  • hooks 为什么只能写在顶层,不写在顶层会报错吗
  • 函数组件中的生命周期
  • React 里面 虚拟 DOM 有啥用,为啥不直接更新 DOM
  • 虚拟 DOM 优势?

打包

  • plugin
  • loader
  • webpack 做过哪些配置
  • webpack 打包流程
  • babel 原理
  • tree shaking 原理
  • webpack 中的环境变量是怎么注入的
  • monorepo 是怎么做的
  • vite 的优势,为什么比 webpack 快
  • webpack 打包的产物是怎么样的,要你去写你怎么写
  • webpack 打包优化

网络

  • http 1.1/2/3
  • http vs https
  • OSI 七层
  • tcp 和 udp
  • 强缓存和协商缓存 浏览器缓存
  • csrf 原理和解决方案
  • 302 怎么确定重定向路径
  • http 3 次 握手?为什么要握手 3 次,握手的流程?

浏览器

  • 输入一个 url 到页面显示的整个过程
  • 跨域
  • 浏览器存储,使用的时候一般什么样的数据存在 cookie、什么样的数据存localStorage

优化相关

  • 大数量加载优化
  • 前端页面性能优化

算法

  • 用栈实现队列
  • 写一个前序遍历
  • 两数之和
  • 数组去重
  • 反转链表
  • 有效括号匹配
  • js 对象数组转树形结构

工具

  • git 相关操作
  • 技术分享做过哪些

场景

  • 生产环境下如何实现页面自动检测更新
  • 如何实现共享单车扫码解锁,分析一下过程
  • 如何实现 pc 扫码登陆
  • Hybrid 混合开发和 JSBridge 的原理
  • 如何监控页面卡顿
  • 如何排查内存泄露,一般由什么情况引起
  • 如何限制一个账号只能在一处登录
  • 如果后端一下子返回一万条数据,用虚拟列表怎么做,虚拟列表滑动很快怎么办,不用虚拟列表怎么做
  • 平时出现问题是如何排查错误的