字节-商业化-社招-4年 · 第 1 轮 · 二面

← 第 1 轮 · 返回本次面经 · 已是最后一轮 → 本轮要点: Web Storage、离线存储、浏览器解析 HTML 文件、浏览器渲染过程、浏览器的缓存机制、浏览器的存储机制 本轮共 22 道题。答案默认折叠,便于先自行作答。 1. 讲一下你的3D渲染的项目 题目要点 略 参考答案 略 2. 3D渲染顶点着色、剪裁你是怎么实现的 题目要点 略 参考答案 略 3. 顶点着色阶段中的坐标变换通常包括哪些步骤?为什么剪裁能提升性能 题目要点 略 参考答案 略 4. 在透视投影中,为什么需要视口变换(Viewport Transformation) 题目要点 略 参考答案 略 5. 像素着色阶段的任务是什么?它如何与光照模型(如Phong或Blinn-Phong)结合 题目要点 略 参考答案 略 6. 延迟渲染(Deferred Rendering)与前向渲染(Forward Rendering)在像素着色阶段的区别 题目要点 略 参考答案 略 7. 深度缓冲(Z-Buffer)的工作原理是什么 题目要点 略 参考答案 略 8. 浏览器绘制一帧的完整流程(从输入事件到像素合成) 题目要点 理清浏览器渲染从事件到显示的每个关键步骤。 解释每个阶段的作用和产生的结果。 强调布局、绘制和合成的性能开销及优化手段。 结合实际开发中的性能调优措施说明。 参考答案 考察点 ● 理解浏览器渲染的全流程 考察从用户输入到最终视觉呈现的各个环节。 ● 掌握事件处理、样式计算、布局、绘制和合成机制 考察对浏览器渲染流水线各阶段的深入理解。 ● 理解性能瓶颈和优化点 参考答案 一、浏览器绘制一帧的整体流程概览 从用户输入事件触发,到最终屏幕显示,浏览器大致执行以下步骤: 事件处理(Input Handling) JavaScript 执行(JS Execution) 样式计算(Style Recalculation) 布局计算(Layout / Reflow) 绘制(Painting) 合成(Compositing) 像素呈现(Rasterization & Display) 二、详细流程解析 1. 用户输入事件处理 浏览器捕获用户的输入事件(如点击、滚动、键盘等),将事件放入事件队列。 主线程从事件队列中取出事件,执行对应的事件处理程序(如回调函数)。 2. JavaScript 执行 事件处理回调可能修改 DOM 或样式。 JavaScript 运行在浏览器主线程,操作 DOM 会影响后续渲染。 3. 样式计算(Style Recalculation) 浏览器根据最新的 DOM 结构和 CSS 规则,计算每个元素的最终样式。 可能触发样式树(style tree)的重建或更新。 4. 布局计算(Layout / Reflow) 计算元素的几何信息(大小、位置等),生成布局树(layout tree)。 重新计算会影响元素相对或绝对位置。 这是性能较昂贵的过程,尤其是节点多或频繁触发。 5. 绘制(Painting) 将布局树转换为绘制指令(绘制图层的内容),如颜色、文字、边框等。 生成绘制层(paint layers),具体绘制到图层画布(layer canvas)。 6. 合成(Compositing) 多个绘制层按照层级关系组合(合成)成最终页面。 使用 GPU 加速合成,将图层合并为一张完整的图像。 合成阶段可以通过硬件加速提升性能,避免全部重绘。 7. 像素呈现(Rasterization & Display) 将合成后的图像转换成屏幕像素。 GPU 或显示设备将最终像素渲染到屏幕,完成一帧的视觉呈现。 三、流程图示意 用户输入 → 事件处理 → JS 执行 → 样式计算 → 布局 → 绘制 → 合成 → 屏幕显示 四、优化与注意点 避免频繁触发布局和绘制,减少重排和重绘次数。 使用 CSS3 硬件加速属性(transform、opacity)优化合成性能。 将复杂动画放入合成层,减少主线程压力。 合理分层减少合成开销,避免过度分层。 减少 JavaScript 执行时间,避免阻塞主线程。 9. 追问:requestAnimationFrame(RAF)在哪个阶段执行?为什么它比setTimeout更适合动画 题目要点 明确 RAF 在浏览器渲染流程中“绘制前”执行。 解释 RAF 与浏览器刷新同步,自动节流的机制。 对比 setTimeout,突出 RAF 动画性能和体验优势。 强调实际开发中推荐使用 RAF 实现动画更新。 参考答案 一、requestAnimationFrame 执行阶段 requestAnimationFrame 回调函数执行时机: RAF 的回调函数会在浏览器开始下一次渲染帧之前执行,即在 浏览器渲染管线中的“绘制(Painting)”之前或合成前的空隙期。 具体来说,RAF 的回调是在浏览器完成一帧的布局(Layout)和样式计算(Style Recalculation)之后,紧接着准备绘制和合成之前触发,保证动画逻辑与渲染同步。 二、为什么 RAF 比 setTimeout 更适合动画 1. 与浏览器刷新频率同步 RAF 会按照屏幕刷新频率(通常是 60fps,即约 16.7ms 一帧)自动调用回调,保证动画平滑且不卡顿。 setTimeout 不与渲染同步,回调可能在任意时刻执行,导致动画帧率不稳定甚至丢帧。 2. 自动节流和性能优化 浏览器在后台标签页会自动暂停 RAF 调用,节省资源;而 setTimeout 仍然会尝试执行,浪费性能。 RAF 允许浏览器合并多次绘制请求,提升性能。 3. 减少视觉撕裂 由于 RAF 在绘制之前触发,能保证动画状态在绘制前更新,减少视觉撕裂和跳帧现象。 setTimeout 可能导致更新与渲染不同步,画面不连贯。 三、总结 特点 requestAnimationFrame setTimeout 执行时机 渲染帧开始前(绘制前) 指定时间后,非渲染同步 帧率同步 与显示器刷新率同步,平滑动画 不保证同步,可能导致跳帧 性能优化 后台标签页自动暂停,节约资源 即使后台也运行,浪费性能 视觉效果 减少撕裂,动画更流畅 易出现撕裂和卡顿 10. 在布局(Layout)和绘制(Paint)阶段,浏览器如何避免不必要的重排(Reflow)和重绘(Repaint) 题目要点 明确重排与重绘的区别和性能影响 介绍浏览器批量更新、延迟计算和图层合成机制 结合实例说明如何避免强制同步布局 总结开发中避免不必要重排重绘的具体技巧和建议 参考答案 考察点 ● 理解重排和重绘的区别及性能影响 考察对浏览器渲染优化关键环节的掌握。 ...

July 27, 2025

字节-商业化-社招-4年 · 第 1 轮 · 一面

← 已是第一轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 全方位解读this、作用域链与闭包、事件循环、call、apply和bind、前端存储、react hooks、react 渲染机制、React函数组件更新 本轮共 25 道题。答案默认折叠,便于先自行作答。 1. 讲一下你平常使用的React Hooks 题目要点 熟练掌握常用 Hook(useState/useEffect/useRef/useMemo/useCallback/useContext) 能结合实际项目说明每个 Hook 的使用动机和实现效果 理解 Hook 的核心机制(闭包陷阱、依赖数组规则、执行时机等) 参考答案 考察点 ● 理解 React Hooks 的基本使用场景及原理 面试官关注候选人是否掌握了常用 Hook 的使用规范与时机。 ● 能否结合项目实际表达 Hooks 的应用能力 考察是否具备将 React 函数组件与 Hooks 结合的实际经验与思维能力。 参考答案 一、常用 React Hooks 介绍 1. useState —— 管理组件内部状态 功能:定义响应式的本地状态。 典型使用场景:表单输入值、按钮开关、局部 UI 状态等。 示例: const [count, setCount] = useState(0); 2. useEffect —— 副作用逻辑处理 功能:用于处理副作用逻辑,如数据请求、DOM 操作、订阅事件等。 依赖数组决定副作用执行时机。 常见场景: 页面初始化请求数据(空依赖数组) 监听某个状态变化触发逻辑(依赖项更新) 组件卸载时清理订阅(返回 cleanup 函数) useEffect(() => { const id = setInterval(() => { console.log('tick'); }, 1000); return () => clearInterval(id); }, []); 3. useRef —— 获取 DOM 或存储跨渲染变量 功能:可以持久保存可变值而不触发组件重新渲染;或获取 DOM 元素引用。 ...

July 27, 2025

http方法

HTTP 协议中定义了多种 请求方法(HTTP Methods),用于客户端和服务器之间进行不同的操作。 一、常用的 HTTP 方法 方法 是否幂等 是否安全 说明 GET ✅ 幂等 ✅ 安全 获取资源。请求参数放在 URL 上。不会对资源产生副作用。 POST ❌ 非幂等 ❌ 不安全 提交数据(如表单、上传),可能导致资源变化或创建。 PUT ✅ 幂等 ❌ 不安全 用于整体更新某个资源(数据完全替换)。 PATCH ❌ 非幂等 ❌ 不安全 用于部分更新资源(只改动部分字段)。 DELETE ✅ 幂等 ❌ 不安全 删除指定资源。 二、幂等性和安全性解释 幂等(Idempotent):同一个请求重复执行多次,结果应一样。例如多次 DELETE 相同资源结果相同。 安全(Safe):不对服务器资源造成副作用。GET 只查询,不修改数据,因此是安全的。 三、其他常见 HTTP 方法 方法 说明 HEAD 类似 GET,但不返回响应体,只返回响应头。常用于检测资源是否存在、获取响应信息。 OPTIONS 用于客户端获取服务器支持哪些方法。也是 CORS 预检请求的一部分。 TRACE 回显服务器收到的请求,主要用于调试。很少使用,可能存在安全隐患。 CONNECT 用于建立隧道(如 HTTPS 的代理通信)。 四、使用场景示例 场景 方法 示例 获取用户列表 GET GET /api/users 创建用户 POST POST /api/users 更新用户信息 PUT / PATCH PUT /api/users/1 或 PATCH /api/users/1 删除用户 DELETE DELETE /api/users/1 总结:记住这几点 GET 用于查询(安全、幂等)。 POST 用于新增(不幂等)。 PUT/PATCH 用于修改资源(PUT 是整体替换,PATCH 是部分更新)。 DELETE 用于删除资源(幂等,但不安全)。 OPTIONS/HEAD 用于辅助请求。 常见考点 1. 语义理解 每个方法在 RESTful API 中代表的含义? PUT 和 PATCH 的区别? GET 和 POST 区别?是否可以用 POST 替代 GET? 2. 幂等性与安全性 哪些方法是幂等的?(调用多次结果一致) 哪些方法是安全的?(不会对服务器资源产生副作用) 3. 浏览器行为 表单默认提交方式是什么?(GET 或 POST) GET 请求能携带 body 吗?(规范上不能,但部分浏览器允许) 4. 缓存行为 浏览器对 GET、POST 的缓存行为有什么区别? 为什么 GET 更适合缓存? 5. 跨域相关(CORS) 哪些方法属于“简单请求”? 使用 PUT/PATCH/DELETE 会触发预检请求(OPTIONS),为什么? 6. 请求体与响应体 哪些方法通常不携带请求体?(如 GET、DELETE) 哪些方法可以/需要携带请求体?(如 POST、PUT、PATCH) 7. 对比和实际使用中的陷阱 PUT/POST 混用的场景(如某些系统用 POST 实现更新) DELETE 是否要有请求体?(规范允许,但不推荐) 可能的延伸考察 RESTful API 设计规范 REST API 中,如何正确使用 GET/POST/PUT/DELETE 等方法? 设计一个增删改查接口,如何对应到不同 HTTP 方法? 状态码与方法配合 DELETE 成功一般返回什么状态码?(如 204 No Content) POST 创建资源后返回什么?(201 Created) 结合安全问题 POST/PUT 方法可能面临哪些安全风险?如 CSRF? 为什么建议对非幂等方法加 CSRF 防护?

July 26, 2025

字节-社招-1年 · 第 1 轮 · 一面

← 已是第一轮 · 返回本次面经 · 已是最后一轮 → 本轮要点: 事件冒泡、事件捕获、事件委托、浏览器的缓存机制、组件通信、异步组件 本轮共 21 道题。答案默认折叠,便于先自行作答。 1. 实现数组里的拍平 数组本身的拍平 题目要点 递归遍历数组并合并结果。 判断元素类型是否为数组。 结合ES6 flat方法提升效率。 参考答案 考察点 ● 理解递归与数组操作 考察候选人对递归处理嵌套数据结构的能力。 ● 掌握ES6及新特性(如flat) 能结合不同方案解决扁平化问题。 参考答案 /** * 递归实现数组拍平 * @param {Array} arr - 待拍平数组,可能嵌套多层 * @returns {Array} - 扁平后的数组 */ function flatten(arr) { let result = []; for (const item of arr) { if (Array.isArray(item)) { result = result.concat(flatten(item)); } else { result.push(item); } } return result; } 或者使用ES6内置方法(只拍平一层): const flatOnce = arr => arr.flat(); ES2019+ 支持深度拍平: ...

July 25, 2025

腾讯-CDG-暑期实习 · 第 1 轮 · 一面

← 已是第一轮 · 返回本次面经 · 已是最后一轮 → 本轮共 22 道题。答案默认折叠,便于先自行作答。 1. 编写一个函数解析URL,提取其中的协议、域名、路径和查询参数 题目要点 URL 结构 / URL API 使用 / 查询参数处理 / 错误处理 参考答案 考察点 ● 理解 URL 结构及其组成部分 面试官关注候选人是否熟悉 URL 的协议(scheme)、域名(host)、路径(path)、查询参数(query)等基本组成。 ● 掌握字符串处理和正则表达式技巧 是否能用合适的方法提取各部分信息。 ● 能写出健壮且兼容性好的解析函数 考虑边界条件和异常输入。 参考答案 原理说明 URL 由以下几部分构成(简化版): 协议://域名\[:端口]/路径\[?查询参数]\[#锚点] 协议(scheme):如 http、https、ftp 等; 域名(host):主机名或 IP 地址; 路径(path):服务器资源路径; 查询参数(query):key=value 形式,多个参数用 & 分隔。 解析时重点提取协议、域名、路径和查询参数。 核心代码示例(JavaScript) function parseURL(url) { try { const urlObj = new URL(url); // 提取协议,去掉末尾冒号 const protocol = urlObj.protocol.replace(':', ''); // 域名(包含端口,如果有) const host = urlObj.host; // 路径 const path = urlObj.pathname; // 查询参数转成对象 const queryParams = {}; urlObj.searchParams.forEach((value, key) => { queryParams[key] = value; }); return { protocol, host, path, queryParams, }; } catch (error) { throw new Error('Invalid URL'); } } 使用示例 const url = 'https://www.example.com:8080/path/to/page?name=alice&age=25'; const result = parseURL(url); console.log(result); /* { protocol: "https", host: "www.example.com:8080", path: "/path/to/page", queryParams: { name: "alice", age: "25" } } */ 常见误区或面试陷阱 误区一:使用正则解析复杂 URL 正则难以覆盖各种边界情况,不建议复杂场景使用; 推荐使用浏览器内置的 URL 类。 误区二:忽略端口号 域名部分可能包含端口,直接取 hostname 会缺失端口。 误区三:查询参数未统一处理 查询参数可能重复,需根据需求选择保存方式(这里简单取最后一个值)。 总结回顾 解析 URL 推荐使用原生 URL API,简洁且兼容性好。重点提取协议、域名(含端口)、路径和查询参数,并把查询参数转换为对象方便后续使用。 ...

July 25, 2025

腾讯-音乐 · 第 1 轮 · 二面

← 第 1 轮 · 返回本次面经 · 已是最后一轮 → 本轮共 9 道题。答案默认折叠,便于先自行作答。 1. 讲一下“智慧医疗系统”项目背景、目标以及你主要负责的模块 题目要点 结合自己简历上的一个亮点项目准备 参考答案 结合自己简历上的一个亮点项目准备 2. 什么是响应式设计?响应式设计的基本原理是什么?如何进行实现? 题库原题:什么是响应式设计?响应式设计的基本原理是什么?如何进行实现? 题目要点 响应式设计(Responsive Design)是一种网页设计方法,旨在使网页在各种设备和屏幕尺寸上都能提供良好的用户体验。响应式设计通过使用流式布局、弹性网格和媒体查询,使得网页能够根据不同的设备特性(如屏幕大小、分辨率、方向等)自动调整其布局和内容。 响应式设计的基本原理 流式布局(Fluid Layouts): 使用相对单位(如百分比、vw、vh)而不是绝对单位(如像素),使得网页布局能够根据容器的宽度自动调整。例如,使用百分比设置宽度,可以让列宽度随着屏幕尺寸的变化而变化。 弹性网格(Flexible Grid Systems): 利用网格系统设计布局,将页面划分为多个灵活的区域。这些区域能够根据屏幕尺寸调整大小,从而实现不同设备上的适配。 媒体查询(Media Queries): 使用 CSS 媒体查询,根据设备的特性(如宽度、高度、分辨率等)应用不同的样式规则。媒体查询可以针对不同的屏幕尺寸、方向(横向或纵向)等条件设置样式。 如何实现响应式设计 使用流式布局: 在 CSS 中使用相对单位(如 %, em, rem, vh, vw)设置宽度和高度。例如: .container { width: 80%; /* 宽度为容器的 80% */ } 利用弹性网格系统: 创建一个弹性网格布局,可以使用 CSS Grid 或 Flexbox。例如,使用 Flexbox: .container { display: flex; flex-wrap: wrap; /* 自动换行 */ } .item { flex: 1 1 300px; /* 自动调整宽度,最小宽度为 300px */ margin: 10px; } 编写媒体查询: ...

July 25, 2025

腾讯-音乐 · 第 1 轮 · 一面

← 已是第一轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 动画、响应式设计、事件循环、跨域、浏览器的缓存机制、列表和key、生命周期 本轮共 16 道题。答案默认折叠,便于先自行作答。 1. 请介绍一下你的科研项目经历。 题目要点 STAR法则 参考答案 结合自身经历展开 2. 为什么选择前端开发作为你的职业方向? 题目要点 无 参考答案 无 3. 你学习前端开发有多久了?谈谈你的学习经历。 题目要点 无 参考答案 无 4. 如何使用CSS实现动画效果?举个项目中的例子。 题目要点 transition/animation 区别 / transform+opacity / 项目落地举例 / 动画性能 参考答案 考察点 ● CSS 动画相关属性与原理掌握 面试官希望了解候选人是否掌握 CSS 动画的基本实现方式,包括 transition、animation、关键帧、补间函数等。 ● 能结合项目场景举例说明 不仅要懂 API,更重要的是知道什么时候使用、为什么使用,是否有性能考量和交互体验意识。 ● 对动画效果的性能与体验理解 是否清楚哪些动画对性能影响大,哪些动画适合用 CSS 实现,如何避免卡顿或丢帧。 参考答案 原理说明 一、CSS 动画的实现方式 CSS 提供了两类动画机制: 1. 过渡动画(transition) 通过 transition 属性定义在样式变更时自动补间的动画: .button { transition: all 0.3s ease-in-out; } 特点: ...

July 25, 2025

腾讯云-实习 · 第 1 轮 · 二面

← 第 1 轮 · 返回本次面经 · 已是最后一轮 → 本轮概述: 二面,以实际场景、设计架构出发,考察候选人的综合知识和深度 本轮共 11 道题。答案默认折叠,便于先自行作答。 1. 描述一个你解决的复杂性能优化案例(指标提升与具体手段) 题目要点 按照START法则来讲解 参考答案 结合自身项目经历来说 2. React/Vue框架设计思想对比(如数据绑定、虚拟DOM) 题目要点 React/Vue/设计思想/双向绑定/单向数据流/虚拟DOM/Fiber/Proxy/模板编译 参考答案 一、考察点 是否理解 React 和 Vue 的设计理念与核心架构区别 是否能准确比较两者在数据绑定、组件化、更新机制上的异同 是否理解虚拟 DOM 的实现方式及两者的优化策略 是否能结合实际项目场景,选择合适的框架思路 二、参考答案 1.1 核心设计思想对比 ✅ 一、框架理念对比 维度 Vue React 核心理念 渐进式框架,关注视图层 函数式 + 声明式 UI,构建 UI 的库 学习曲线 简洁、直观、HTML+JS 分离 更偏工程化,需要理解 JSX、Hooks 模板机制 模板语法(HTML-like) + 指令(v-xxx) 使用 JSX 全部由 JS 描述 UI ✅ 二、数据绑定机制 🔹 Vue 使用响应式系统(Vue2 的 Object.defineProperty,Vue3 的 Proxy); 支持 双向绑定(如 v-model); 模板中变量变化会自动更新视图,开发体验友好。 🔹 React 数据是不可变状态(immutable state); 单向数据流(父 → 子); 利用 setState() 或 useState() 触发重新渲染; 更强调“以状态驱动视图”,需要手动绑定与更新。 ✅ 三、虚拟 DOM 实现与 Diff 策略 Vue 自主构建 Virtual DOM(与模板语法结合); Vue2 使用双端比较 diff 算法; Vue3 引入 静态提升 + Block Tree + 最长递增子序列(LIS),减少不必要 patch; 编译优化层更强,template 更容易静态分析。 React 以函数式组件为主,使用 JSX 构建虚拟 DOM; 使用 Fiber 架构重构更新机制,实现异步可中断渲染; 更新优先级调度(如 startTransition)是核心优势之一; Diff 算法基于同层比较 + key 优化,机制稳定。 ✅ 四、组件设计与状态管理 对比项 Vue React 状态管理 Vuex(Vue2) / Pinia(Vue3) Redux / Context API / Zustand 等 生命周期 Options API(Vue2)/ Composition API(Vue3) 类组件生命周期 / 函数组件 Hooks 组件通信 props / emit / provide/inject props / context / props drilling 3. React Hooks闭包陷阱的产生原因? 题目要点 React Hooks/闭包陷阱/useEffect/useRef/setInterval/函数式更新/stale closure ...

July 25, 2025

腾讯云-实习 · 第 1 轮 · 一面

← 已是第一轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 一面,更多考察的是八股文的基础知识 本轮共 20 道题。答案默认折叠,便于先自行作答。 1. 什么是 HTML 语义化? 题库原题:什么是 HTML 语义化? 题目要点 先看下什么是HTML: 参考答案 先看下什么是HTML: 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,它被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。 那么如何理解 Web 语义化? 通俗的来讲就是从代码上来展示页面的结构,而不是从最终视觉上来展示结构。 单纯的HTML代码是不带任何样式的只是用来标记这一段是标题、这一块是代码、那一个是要强调的内容等等。 但是为什么我们只写HTML在浏览器中不同的标签也是有不同的样式呢? 那是因为各个浏览器都自带的有相应标签的默认样式,为了方便在没有设定样式的情况下友好的展示页面。 良好的语义化代码可以直接从代码上就能看出来那一块到底是要表达什么内容。 为什么要使用语义化标签? 有伙伴会认为,我用DIV+CSS也能做出来一样的效果,虽然单纯看实现效果,两者并没有什么区别。 但是页面不止是给人看的,机器也要看爬虫也要看,网页结构更清晰方便开发维护。 特别是在网络或其他原因页面样式文件丢失的时候,良好语义结构组成的页面,肯定比全是div的页面对用户更友好。 总结下语义化的优点: 标签语义化有助于构架良好的HTML结构,有利于搜索引擎的建立索引、抓取。简单来说。 有利于不同设备的解析(屏幕阅读器,盲人阅读器等) 有利于构建清晰的机构,有利于团队的开发、维护 2. CSS盒模型、Flex布局与Grid布局的区别及适用场景 题目要点 CSS盒模型/box-sizing/Flex布局/Grid布局/一维 vs 二维/布局适用场景/页面结构设计 参考答案 一、考察点 是否掌握 CSS 中盒模型的基本概念及布局行为 Flex 与 Grid 的本质区别及使用场景是否清晰 能否结合实际 UI 场景选择最合适的布局方式 是否理解布局系统与页面结构解耦的设计思想 二、参考答案 1.1 原理说明 ✅ 一、CSS 盒模型(Box Model) 定义:所有 HTML 元素都可以看作一个矩形盒子,由以下四层组成: ...

July 25, 2025

百度-百度云-校招 · 第 1 轮 · 二面

← 第 1 轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 二面重点考察前端框架理解与性能优化能力,同时关注工程化处理思维和大规模数据处理能力。 本轮共 10 道题。答案默认折叠,便于先自行作答。 1. 元素隐藏的三种方法(display:none、visibility:hidden、opacity:0)及其区别 题目要点 display: none:元素不在文档流中,不占位,无法响应事件。 参考答案 display: none:元素不在文档流中,不占位,无法响应事件。 visibility: hidden:占位但不可见,无法响应事件。 opacity: 0:占位且可响应事件(需用 pointer-events: none 避免)。 2. display:none是否影响DOM渲染性能?如何用CSS实现淡出动画? 题目要点 display:none 会从渲染树中移除,提升性能,但不能用于动画过渡。 参考答案 display:none 会从渲染树中移除,提升性能,但不能用于动画过渡。 使用 opacity + transition 实现淡出,再用 JS 延迟设置 display:none。 3. Array.from({ length: 5 }, (v, i) => i * 2) 的输出是什么? 题目要点 输出 [0, 2, 4, 6, 8]。构造一个长度为 5 的数组,并通过索引乘以 2 填充。 参考答案 输出 [0, 2, 4, 6, 8]。构造一个长度为 5 的数组,并通过索引乘以 2 填充。 ...

July 24, 2025