外观
遗留问题
约 2655 字大约 9 分钟
2025-04-22
一、Javascript 基础
async
、await
实现原理Proxy
能够监听到对象中的对象的引用吗?bind
、call
、apply
有什么区别?如何实现一个bind
方法?script
标签放在header
里和放在body
底部里有什么区别?- 什么是作用域链?
二、React 框架题(源码笔记等)
- React Portals 有什么用?
- react 和 react-dom 是什么关系?
- React 中为什么不直接使用 requestIdleCallback?
- 为什么 react 需要 fiber 架构,而 Vue 却不需要?
- 子组件是一个 Portal,发生点击事件能冒泡到父组件吗?
- React 为什么要废弃 componentWillMount、componentWillReceiveProps、component...
- 说说 React render 方法的原理?在什么时候会被触发?
- 说说 React 事件和原生事件的执行顺序
- 说说对受控组件和非受控组件的理解,以及应用场景?
- 你在 React 项目中是如何使用 Redux 的?项目结构是如何划分的?
- 说说对 Redux 中间件的理解?常用的中间件有哪些?实现原理?
- 说说你对 Redux 的理解?其工作原理?
- 说说你对 immutable 的理解?如何应用在 react 项目中?
- 说说 React Jsx 转换成真实 DOM 过程?
- 说说你在 React 项目是如何捕获错误的?
- 说说 React 服务端渲染怎么做?原理是什么?
- ReactFiber 是如何实现更新过程可控?
- Fiber 为什么是 React 性能的一个飞跃?
- setState 是同步,还是异步的?
- React Portals 有什么用?
- react 和 react-dom 是什么关系?
三、Vue 框架题(源码笔记等)
- Vue 有了数据响应式,为何还要 diff?
- Vue3 为什么不需要时间分片?
- Vue3 为什么要引入 Composition API ?
- 谈谈 Vue 事件机制,并手写
$on
、$off
、$emit
、$once
方法 - computed 计算值为什么还可以依赖另外一个 computed 计算值?
- 说一下
vm.$set
原理 - 怎么在 Vue 中定义全局方法?
- Vue 中父组件怎么监听到子组件的生命周期?
- Vue 组件里写的原生
addEventListeners
监听事件,要手动去销毁吗?为什么? - Vue 组件里写的原生
removeEventListeners
监听事件,要手动去销毁吗?为什么? - 说说 Vue3 中的响应式设计原理
- Vue 中,created 和 mounted 两个钩子之间调用时间差值受什么影响?
- 为什么 react 需要 fiber 架构,而 Vue 却不需要?
- SPA(单页应用)首屏加载速度慢怎么解决?
- Vue 2 为什么不能检查数组的变化,该怎么解决?
- 说说 Vue 页面渲染流程
- Vue 中 computed 和 watch 区别
- Vuex 中的辅助函数怎么使用?
- 如果使用 Vue3.0 实现一个 Modal,你会怎么进行设计?
- Vue 中,
created
和mounted
两个钩子之间调用时间差值受什么影响? - Vue 中,推荐在哪个生命周期发起请求?
四、Node.js
common.js
和es6
中模块引入的区别?- 为什么 Node 在使用 ES Module 时必须加上文件扩展名?
- package.json 文件中的 devDependencies 和 dependencies 对象有什么区别?
- 浏览器和 Node 中的事件循环有什么区别?
- Node 性能如何进行监控以及优化?
- 如何实现文件上传?说说你的思路
- 如何实现 jwt 鉴权机制?说说你的思路
- 说说对中间件概念的理解,如何封装 node 中间件?
- 说说 Node 文件查找的优先级以及 Require 方法的文件查找策略?
- 说说对 Nodejs 中的事件循环机制理解?
- 说说 Node 中的 EventEmitter?如何实现一个 EventEmitter?
- 说说对 Node 中的 Stream 的理解?应用场景?
- 说说对 Node 中的 Buffer 的理解?应用场景?
- 说说对 Node 中的 fs 模块的理解?有哪些常用方法
- 说说对 Node 中的 process 的理解?有哪些常用方法?
- Node. js 有哪些全局对象?
- 说说你对 Node.js 的理解?优缺点?应用场景?
- body-parser 这个中间件是做什么用的?
- Koa 中,如果一个中间件没有调用
await next()
,后续的中间件还会执行吗? - 在没有
async
/await
的时候,koa 是怎么实现的洋葱模型?
五、Typescript
- 说说对 TypeScript 中命名空间与模块的理解?区别?
- 说说你对 typescript 的理解?与 javascript 的区别?
- Typescript 中泛型是什么?
- TypeScript 中有哪些声明变量的方式?
- 什么是 Typescript 的方法重载?
- typescript 中的 is 关键字有什么用?
- TypeScript 支持的访问修饰符有哪些?
- 如何定义一个数组,它的元素可能是字符串类型,也可能是数值类型?
- 使用 TS 实现一个判断传入参数是否是数组类型的方法
- TypeScript 的内置数据类型有哪些?
六、前端工程化
- package.json 文件中的 devDependencies 和 dependencies 对象有什么区别?
- webpack 5 的主要升级点有哪些?
- 说下 Vite 的原理
- 与 webpack 类似的工具还有哪些?区别?
- 说说如何借助 webpack 来优化前端性能?
- 说说 webpack proxy 工作原理?为什么能解决跨域?
- 说说 webpack 的热更新是如何做到的?原理是什么?
- 面试官:说说 Loader 和 Plugin 的区别?编写 Loader,Plugin 的思路?
- 说说 webpack 中常见的 Plugin?解决了什么问题?
- 说说 webpack 中常见的 Loader?解决了什么问题?
- 说说 webpack 的构建流程?
- 说说你对 webpack 的理解?解决了什么问题?
- webpack loader 和 plugin 实现原理
- 如何提高 webpack 的构建速度?
- 说说 webpack-dev-server 的原理
- 你对 babel 了解吗,能不能说说几个 stage 代表什么意思?
- webpack 的 module、bundle、chunk 分别指的是什么?
- 什么是 CI/CD?
- 说说你对前端工程化的理解
- 说说你对 SSG 的理解
七、编程手写题
- 使用 Promise 实现红绿灯交替重复亮
bind
、call
、apply
有什么区别?如何实现一个bind
?- 利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。
- 说说
new
操作符具体干了什么? - 如何实现上拉加载,下拉刷新?
- 大文件怎么实现断点续传?
- 什么是防抖和节流,以及如何编码实现?
- 说说
ajax
的原理,以及如何实现? - 深拷贝浅拷贝有什么区别?怎么实现深拷贝?
- 用 js 实现二叉树的定义和基本操作
- 如何实现一个轮播图组件?
- 写出一个函数 trans,将数字转换成汉语的输出,输入为不超过 10000 亿的数字。
- 将下面的数组转成树状结构
- 编写一个 Vue 组件,组件内部使用插槽接收外部内容,v-model 双向绑定,实现折叠展...
- 实现 lodash 的
set
和get
方法 - 去除字符串中出现次数最少的字符,不改变原字符串的顺序。
- 实现一个批量请求函数,要求能够限制并发量
- 树转数组
- 数组转树
- 删除链表的一个节点
八、前端性能优化(大厂专题篇)
- script 标签放在 header 里和放在 body 底部里有什么区别?
- 前端性能优化指标有哪些?怎么进行性能检测?
- SPA(单页应用)首屏加载速度慢怎么解决?
- 如果使用 CSS 提高页面性能?
- 怎么进行站点内的图片性能优化?
- 虚拟 DOM 一定更快吗?
- 有些框架不用虚拟 dom,但是他们的性能也不错是为什么?
- 如果某个页面有几百个函数需要执行,可以怎么优化页面的性能?
- 讲一下 png8、png16、png32 的区别,并简单讲讲 png 的压缩原理
- 页面加载的过程中,JS 文件是不是一定会阻塞 DOM 和 CSSOM 的构建?
- React.memo()和 useMemo()的用法是什么,有哪些区别?
- 导致页面加载白屏时间长的原因有哪些,怎么进行优化?
- 如果一个列表有 100000 个数据,这个该怎么进行展示?
- DNS 预解析是什么?怎么实现?
- 在 React 中可以做哪些性能优化?
- 浏览器为什么要请求并发数限制?
- 如何确定页面的可用性时间,什么是 PerformanceAPI?如何使用?
- 谈谈对 window.requestAnimationFrame 的理解
- css 加载会造成阻塞吗?
- 什么是内存泄漏?什么原因会导致呢?
- 如何用 webpack 来优化前端性能
- 说说常规的前端性能优化手段
- 什么是 CSS Sprites?
- CSS 优化、提高性能的方法有哪些?
- script 标签中,async 和 defer 两个属性有什么用途和区别?
九、项目场景题(25 年面试必考)
- 如何判断用户设备
- 如果让你来设计一个分页功能,你会怎么设计?前后端如何交互?
- 将多次提交压缩成一次提交
- 介绍下 navigator.sendBeacon 方法
- 混动跟随导航(电梯导航)该如何实现
- 退出浏览器之前,发送积压的埋点数据请求,该如何做?
- 如何统计页面的 long task(长任务)
- PerformanceObserver 如何测量页面性能
- 移动端如何实现下拉滚动加载(顶部加载)
- 判断页签是否为活跃状态
- 在网络带宽一定的情况下,切片上传感觉和整体上传消费的时间应该是差不多的这种说法正确吗?
- 大文件切片上传的时候,确定切片数量的时候,有那些考量因素
- 页面关闭时执行方法,该如何做
- 如何统计用户 pv 访问的发起请求数量
- 长文本溢出,展开/收起如何实现
- 如何实现鼠标拖拽
- 统计全站每一个静态资源加载耗时,该如何做
- 防止前端页面重复请求
- ResizeObserver 作用是什么
- 要实时统计用户浏览器窗口大小,该如何做
- 当项目报错,你想定位是哪个 commit 引入的错误的时,该怎么做
更新日志
2025/9/27 17:16
查看所有更新日志
1eb9b
-docs(Javascript): 更新Generator生成器函数文档内容于