JavaScript 基础
JavaScript 基础知识
对比三种常见的 HTTP 请求方式的特点和使用场景
设置数组 length 为 0 后访问元素的返回值
addEventListener 的 options 和 useCapture 参数详解
使用 slice 和 apply 将 arguments 转换为真正的数组
CSS 中 animation、transition 和 hd18w 三个属性的作用和使用场景
什么是伪数组以及转换为真数组的几种方法
类数组对象的定义、常见场景及转换为数组的方法
使用 sort() 方法对对象数组按指定属性进行排序
对比箭头函数和普通函数在 this、arguments、new 等方面的差异
理解 AST 的概念、作用和应用场景
HTML 属性与 DOM 属性的区别和联系
JavaScript 编译器,将 ES6+ 代码转换为兼容旧版本的语法
理解 async/await 基于 Generator 和自动执行器的实现机制
JavaScript 中常见的异步编程方案及代码示例
forEach 不支持 await,使用 for...of 或 for 循环代替
使用 Promise.all 和 Promise.allSettled 获取多个异步任务的执行结果
解释 Base64 编码原理及其导致数据量增加 33% 的原因
JavaScript 中用于处理大整数的 BigInt 类型
用递归和非递归两种方式实现二分查找算法
使用 JavaScript 实现二叉排序树的节点定义、插入、删除、查找等基本操作
多次调用 bind 方法时,this 的绑定规则
浏览器缓存类型及其优先级
理解三种改变 this 指向的方法及手写 bind 实现
浏览器的多进程架构和渲染进程中的多线程机制
JavaScript 中 arguments.callee 和 function.caller 的作用与用法
通过 userAgent 和功能检测两种方式判断浏览器版本
使用图的连通分量算法计算 Canvas 中黑块的数量
解决 Canvas 获取跨域图片时的污染问题
Canvas 2D 和 WebGL 3D 渲染技术的对比
了解从输入 URL 到页面渲染完成的完整流程
JavaScript 中判断空对象的几种方法
实现温度单位转换函数,将摄氏度转换为华氏度
分析函数声明和变量声明的提升顺序及执行结果
移动端触摸事件触发 click 导致的点击穿透现象及解决方案
理解函数声明和变量声明的提升顺序
分析 var 声明变量在 setTimeout 循环中的输出结果
转盘抽奖组件的设计要点和前端防刷策略
分析 return Promise.resolve() 时的微任务执行机制
了解 CDN 的工作原理和为什么要将静态资源部署到 CDN
理解 typeof 的链式调用和函数返回值的类型判断
分析函数调用中 typeof 操作符和 let 声明的暂时性死区问题
箭头函数和普通函数在 this 绑定和构造函数调用上的区别
分析不同调用方式下 this 的指向
Cookie 的 expires 或 max-age 设置为 0 时的生命周期
分析函数调用中 typeof 操作符和 let 声明的暂时性死区问题
理解同源策略如何保护用户上网安全
面试中如何判断和展示你与企业的匹配度
三种浏览器存储方式的特性、使用场景和选择建议
理解跨域原理,掌握 CORS、Nginx 代理、Node 中间件等常用跨域方案
使用 JavaScript 统计页面中有多少种不同的 HTML 标签
实现同源标签页之间数据通信的多种方法
理解浏览器的同源策略和跨域问题
实现不同页面间数据传递和通信的多种方案
分析 CSS 和 JavaScript 文件的下载、解析对 DOM 渲染的阻塞关系
理解客户端渲染和服务端渲染的区别与应用场景
CSS 动画和 JavaScript 动画的优缺点分析
JavaScript 动画与 CSS 动画的区别、优缺点及使用场景
使用 JavaScript 将十进制小数转换为二进制
使用 JavaScript 判断页面是通过 PC 端还是移动端访问
JavaScript 中深拷贝与浅拷贝的区别及实现方式
对比 document.write 和 innerHTML 的使用场景和特性差异
jQuery 中 $(document).ready() 与 window.onload 的区别和使用场景
使用原生 JavaScript 实现元素拖拽的完整方案
理解 JavaScript 中 DOM 和 BOM 两种对象模型的作用和区别
offsetWidth、clientWidth 和 scrollWidth 等元素尺寸属性的区别
空数组调用 reduce 方法的行为和解决方案
四种会忽略 enumerable 为 false 属性的操作
package.json 中两种依赖类型的使用场景和安装方式
通过全局对象判断 JavaScript 代码运行在浏览器还是 Node.js 环境
在 JavaScript 中判断一个对象是否为空对象
理解 ES6 装饰器的概念、用法和实际应用场景
面试结束前应该向面试官提问的几个问题
了解 eval 的用途、安全风险和替代方案
同一 DOM 元素同时绑定捕获和冒泡事件的执行机制
利用事件冒泡机制,将子元素的事件委托给父元素处理
理解 JavaScript 事件循环机制
理解 JavaScript 中执行上下文的创建过程和作用域链的查找机制
理解 React 中多次调用 setState 时的批量更新行为
理解 DOM 事件的冒泡和捕获阶段,以及 addEventListener 的第三个参数
总结 ES6 及后续版本的常用新特性
理解 JavaScript 中函数作为一等公民的含义和应用
解释 JavaScript 浮点数精度丢失的原因及解决方案
理解 JavaScript 函数的 length 属性计算规则
分析 flexible.js 通过动态设置 rem 基准值实现移动端等比缩放适配的原理
forEach 中 return 无效,如何正确中断循环
前端路由的概念、使用场景及两种实现方式
CSS、JavaScript、Canvas、SVG 等多种前端动画实现方案对比
前端开发岗位的常见面试环节和准备要点
了解 Web Vitals 等性能指标,掌握 Lighthouse、Chrome DevTools 等检测工具的使用
使用栈结构存储前端路由历史记录
函数声明式与函数表达式的区别和使用场景
JavaScript 中调用函数的几种方式及 this 指向
兼容各浏览器获取页面滚动距离的方法
分析函数静态方法、实例方法和原型方法的调用优先级
使用 JavaScript 生成连续数字数组的方法
理解纯函数、柯里化、高阶函数和副作用
JavaScript 内置的全局函数和全局变量汇总
理解程序内存管理和数据结构中的堆与栈概念
HTTP/2 如何通过二进制帧实现多路复用
通过 Wireshark 抓包分析 HTTPS 完整握手流程
理解 IIFE 的语法、用法和应用场景
isNaN 会进行类型转换,Number.isNaN 只判断数字类型的 NaN
实现类似谷歌图片搜索系统的技术方案
前端面试中需要把握的重要环节和技巧
通过 Symbol.iterator 让对象支持 for...of 循环
JavaScript 内置对象的分类与常用方法
理解 JavaScript 迭代器协议和生成器函数的使用
JavaScript 由 ECMAScript、DOM 和 BOM 三部分组成
JavaScript 内置对象的分类与常用方法
理解闭包原理,掌握防抖节流实现,避免内存泄漏
引用计数、标记清除和分代回收的原理与区别
JavaScript 中的 7 种内置错误类型及其触发场景
JavaScript 基本类型、引用类型及四种类型检测方式
三种在浏览器和 Node.js 中动态生成海报图片的实现方案
JavaScript 中创建对象的几种方式及其区别
Promise 的状态机制、链式调用与异常处理
使用 XMLHttpRequest、Fetch 和 axios 取消 HTTP 请求
理解 JavaScript 单线程、事件循环和任务队列
原型链、构造函数、组合继承、寄生组合、ES6 Class 的实现与优缺点
对象从创建到销毁的完整过程
JavaScript 中 this 的五种绑定规则及优先级
理解 jQuery 构造函数中 this 的指向
jQuery 对象与原生 DOM 对象的区别及使用方式
如何回答"你是否胜任这份工作"
JavaScript 在什么情况下会阻塞 DOM 和 CSSOM 的构建,以及如何避免
JSBridge 实现 JavaScript 与 Native 双向通信的机制
JSON 的语法规则、数据类型和常用方法
动态规划解决 0-1 背包问题
通过分片上传、断点续传等方式实现大文件上传
换工作时的工作交接流程和社保公积金衔接指南
解决 for 循环中 setTimeout 输出问题的三种方法
低代码平台的概念、技术路线和可视化编辑器实现方式
JavaScript 事件循环中宏任务和微任务的区别与执行顺序
解析 ['1','2','3'].map(parseInt) 为什么返回 [1, NaN, NaN]
分析 ['10', '10', '10'].map(parseInt) 的输出结果
使用 Map 实现一个 LRU(最近最少使用)缓存机制
理解 JavaScript 数组方法 map 和 filter 的参数、用途和使用场景
ES6 四种集合类型的特性对比与使用场景
JavaScript 中向上取整和向下取整的使用方法
通过 apply 和扩展运算符让 Math.max/min 处理数组
Math.random() 与 crypto.getRandomValues() 的区别及使用场景
Math.ceil()、Math.round()、Math.floor() 三种取整方法的使用场景
JavaScript 常见内存泄漏场景及 Chrome DevTools 检测方法
使用动态规划和分治法求解数组中连续子数组的最大和
将数组中的连续数字合并为区间表示
微前端架构的概念和特点
使用 MessageChannel 在不同执行环境之间建立双向通信
MessageChannel API 用于在不同执行环境之间建立双向通信通道
微前端中 CSS 和 JavaScript 的隔离方案
按顺序执行 Promise 数组并收集结果
微前端架构如何解决大型应用拆分、历史系统整合等问题
移动端样式适配的常用方法和最佳实践
比较 CommonJS、AMD、CMD 与 ES Module 的加载方式和导出机制
理解 mouseenter 和 mouseover 事件在冒泡和触发时机上的差异
使用 addEventListener 为同一个按钮绑定多个点击事件
实现微前端的四种主流技术方案对比
移动端 300ms 点击延迟的原因及解决方案
不使用 WebSocket 实现浏览器多标签页之间的通信
不使用 Promise.all 实现并发执行多个 Promise
手写 TypeScript 版本的数组 map 方法
JavaScript 基础概念、原型、闭包、异步等常见考点
理解 OSI 七层模型、TCP/IP 四层模型和五层网络模型的结构与协议
解析 JavaScript 中 new 操作符带括号和不带括号的执行差异
解释 Node.js 中 ES Module 必须使用文件扩展名的原因
理解 new 操作符做了什么,并手写实现
JavaScript 中哪些事件不会冒泡传播
使用栈实现二叉树的前序、中序、后序遍历
JavaScript 中 null 和 undefined 的区别及使用场景
Node.js 的包管理工具及其使用场景
空值合并运算符与逻辑或运算符的区别及实际应用
实现将数字转换为中文大写的函数,支持 10000 亿以内的数字
对比 Object.create 和 new 创建对象的实现原理和使用差异
实现阿拉伯数字转中文数字的方法
JavaScript 中使用下划线分隔的数字与普通数字是否相等
对象字面量、构造函数、Object.create、class 等创建对象的方式
通过实现迭代器协议让对象支持数组解构赋值
JavaScript 中的面向对象编程概念与实现
通过实现迭代器协议,让普通对象支持数组解构语法
OOP 的四大特性及 JavaScript 实现
JavaScript 中 Object 和 Map 两种数据结构的对比与使用场景
两种编程范式的区别、优缺点及 JavaScript 示例
面向对象的三大特性:封装、继承、多态
前端实现页面截图的几种常用方法
理解 DOMContentLoaded、load、beforeunload、unload 四个页面生命周期事件
前端轮询的实现方式、与长轮询的区别及替代方案
前端面试中如何回答个人经历相关问题
React Portal 渲染到其他 DOM 节点后,事件如何冒泡到父组件
面试中如何回答"你是怎样的人"
pnpm 的工作原理、依赖管理机制和性能优势
理解 Polyfill 的概念及其在浏览器兼容性中的作用
使用 window.postMessage 实现跨域窗口通信
前端防止用户快速连续点击造成数据多次提交的方法
使用 reduce 和 map 计算两个数组的笛卡尔积
如何在面试中系统地分析和解决问题
三种方案防止用户重复点击按钮发起多次请求
JavaScript 中阻止事件冒泡和默认行为的三种方法
如何在面试中有效描述项目难点及解决方案
前端项目从需求到上线的完整流程
面试中如何有效介绍项目经验
让 Promise.all 在某个请求失败后继续返回其他成功的结果
实现 Promise 调用链中断和超时控制
限制异步操作的并发数量,实现图片资源的批量加载
分析 Promise.reject 在 then 方法中的错误处理流程
then 第二个参数和 catch 方法在错误处理上的差异
理解两种并行处理 Promise 方法的不同行为和使用场景
分析 Promise 构造函数中的代码执行顺序和状态
使用 Promise 封装图片异步加载方法
用 Promise 和 reduce 实现每隔 1 秒依次输出数组元素
使用 Promise 和递归实现红绿灯循环亮灯效果
理解和使用 JavaScript 属性描述符
JavaScript 中遍历对象属性的 5 种方法及其区别
ES6 Proxy 的基本用法和常见拦截操作
对比两种数据劫持方式及其在 Vue 响应式中的应用
理解 __proto__、prototype 和 constructor 的关系
了解 PWA 的概念、核心技术和特性
为什么 React 需要 Fiber 架构,而 Vue 不需要
解释 React 为何废弃 componentWillMount 等钩子,以及如何用 getDerivedStateFromProps 替代
React 合成事件与原生事件的执行顺序及版本差异
实现 PC 端扫描二维码登录的完整流程
将组件渲染到父组件 DOM 层次之外的位置
理解 React 核心库与 DOM 渲染库的分工
数组 reduce 方法的使用场景和实现原理
理解 React render 方法的工作原理和触发条件
理解 Reflect 对象的设计目的和使用场景
Reflect 提供统一的对象操作方法,整合了 Object 的相关功能
React 选择自己实现 Scheduler 而非直接使用 requestIdleCallback 的原因
JavaScript 正则表达式的方法使用与实际场景
REST 架构风格的 Web 服务接口设计规范
两种浏览器调度 API 的区别与使用场景
选择合适的时间投递简历,提高被查看的概率
script 标签放在 head 和 body 底部的区别及优化方案
实现鼠标悬停时暂停滚动,离开后继续剩余等待时间
使用 for await 和 reduce 实现异步任务的顺序执行
实现 JavaScript 延迟加载的 5 种方法
浏览器同源策略的定义、作用和限制范围
在 script 标签中使用 export 需要添加 type="module" 属性
Service Worker 的概念、作用和特点
使用 setTimeout 递归调用来模拟 setInterval 的效果
setTimeout(fn, 0) 在实际开发中的使用场景
理解 setTimeout 的执行时机和 JavaScript 事件循环机制
使用 Promise 和 setTimeout 实现异步延迟函数
理解 JavaScript 单线程模型和异步机制的配合原理
解决单页应用首屏加载速度慢的实用方案
JavaScript use strict 模式下的语法限制和行为变化
根据字符重复次数压缩字符串
正确计算包含 emoji 和特殊 Unicode 字符的字符串长度
多种方式实现字符串的重复拼接功能
为什么基本类型可以直接调用方法
JavaScript 中同步和异步执行的区别与应用场景
理解尾调用优化原理,用尾递归避免栈溢出
JavaScript 中三种数字格式化方法的使用场景和区别
理解事件对象中 target 和 currentTarget 的不同含义
解决 setTimeout/setInterval 实现倒计时时的时间偏差问题
TCP 连接建立和断开的过程及原理
使用深度优先遍历获取二叉树从根节点到叶子节点的所有路径
try...catch 无法捕获异步代码中的错误及解决方案
Tree Shaking 的工作机制和实现原理
理解 NaN 的类型和特殊性质
隐式转换和显式转换的规则与常见场景
TypeScript 中 public、private 和 protected 的使用和区别
理解 TypeScript 泛型的概念、使用方式和应用场景
Interface 和 Type 的用法对比与选择建议
通过方法重载实现函数的多种参数类型和返回值
使用 is 关键字实现类型保护和类型收窄
TypeScript 中声明变量的多种方式及使用场景
TypeScript 中命名空间和模块的使用方式及区别
JavaScript 中 undefined 和 ReferenceError 的本质区别
从 URL 字符串中提取文件扩展名
理解 TypeScript 的特性以及它与 JavaScript 的主要区别
理解为什么需要使用 encodeURIComponent 对 URL 参数进行编码
实现版本号数组的排序,包括字符串比较法、大数加权法和循环比较法
变量提升、暂时性死区、块级作用域的对比
理解 JavaScript 中变量提升的原理和执行过程
框架将虚拟 DOM 渲染到页面时的处理流程
通过只渲染可见区域来优化长列表性能
created 和 mounted 钩子之间的时间差受哪些因素影响
在 Vue 组件中应该在哪个生命周期钩子发起 HTTP 请求
基于 ESM 和 esbuild 的新一代前端构建工具实现原理
Vue 从挂载组件到生成真实 DOM 的完整渲染过程
Vue2 无法检测数组索引变化的原因及解决方案
实现多个独立构建之间共享模块和代码
在后台线程运行 JavaScript,避免阻塞 UI
通过心跳保持 WebSocket 连接活跃并检测连接状态
WebSocket 的特性、优势及与 HTTP 的对比
从基础到实现,理解 Vue 3 响应式系统的设计思路
在不支持 WebSocket 的旧浏览器中实现实时通信的替代方案
Webpack 5 的主要新特性和改进
对比 WebSocket 和 HTTP 协议的通信方式、连接特性和使用场景
分析页面加载白屏的原因及优化方案
对比 XML 和 JSON 两种数据交换格式的特点和差异