当前位置: 首页 > article >正文

前端面试题(高级)

前端面试题(高级)牛客网 刷题技术栈:Agent 全栈开发 指的是 同时具备前端、后端的能力,并且熟悉 Agent 知识。前端:Vue、React 二选一即可。即传统前端知识。后端:Node、Java、Python、Go 四选一(或 四选二)。Java 通常做传统业务开发。Node 和 Python 做 AI 能力对接Agent 知识:全新的技术,包括Vibe Coding、MCP、RAG、Skills等等的 AI 概念。nginx 的使用web服务器 ,反向代理服务器API 网关前端页面在浏览器上显示时的渲染处理过程Vue3的性能提升主要来自三个方向:1.「编译阶段」:通过静态标记、静态提升等优化,减少无效的DOM遍历;2.「源码体积」:用Tree Shaking技术,只打包用到的代码,让文件更小;3.「响应式系统」:用Proxy代替defineProperty,监控更全面、更高效。electron 多端开发开发过程中的闪光点,贡献遇到的问题,及项目难点步骤条 结合 动态表格的设置,表格每一行的数据 都是由上一步选择而来,选项也是动态的vue深层次原理的理解Vue 的响应式系统,是一个以 Proxy 为载体、以 effect 为单元、以 track/trigger为纽带、以「依赖图可计算」为前提、「更新可调度」为保障的函数式响应式引擎。effect 函数不是“监听器”,而是一个带依赖收集能力的函数包装器;import { effect } from ‘@vue/reactivity’track(target, key):依赖收集的“登记簿”5年多的经验,有哪些能力的提示和优势pc端和移动端开发的不同职业规划自定义报表的开发,拖拽Vue Draggable 等拖拽库的使用定义一个animate的对象,再定义一个cat,如何使cat 获取到animate原型上的属性和方法1、class extends2、使用 Object.create()(创建时指定原型,更语义化)3、Object.setPrototypeOf()(最直接,推荐用于简单继承)1class类//class extendsclassAnimate{constructor(speed=1){this.speed=speed;}move(){console.log(`Moving at speed${this.speed}`);}stop(){console.log('Stopped.');}}classCatextendsAnimate{constructor(name,speed=1){super(speed);// 调用父类构造函数this.name=name;}meow(){console.log('Meow!');}}constcat=newCat('Whiskers',2);2、使用 Object.create()(创建时指定原型,更语义化)constanimate={speed:1,move(){console.log(`Moving at speed${this.speed}`);},stop(){console.log('Stopped.');}};// ✅ 创建 cat:以 animate 为原型,再添加自身属性constcat=Object.create(animate);cat.name='Whiskers';constanimate={speed:1,move(){console.log(`Moving at speed${this.speed}`);},stop(){console.log('Stopped.');}};// ✅ 创建 cat:以 animate 为原型,再添加自身属性constcat=Object.create(animate);cat.name='Whiskers';3、Object.setPrototypeOf()(最直接,推荐用于简单继承) Object.setPrototypeOf(cat,animate);定义类 class自定义promise 函数webpack 打包所做的优化一、代码分割与懒加载SplitChunksPlugin(自动分包)、动态 import() 懒加载、 预Preload / Prefetch 提前加载关键资源二、Tree Shaking(死代码消除)移除未使用的 ES Module 导出,减小包体积。Webpack v4+ 默认开启三、模块解析与压缩优化TerserPlugin(JS压缩)、CssMinimizerPlugin(CSS 压缩)四、资源处理与加载优化Image Minimization(需插件)如image-minimizer-webpack-plugin + sharp/svgo: 自动压缩 JPG/PNG/SVG,WebP转换,尺寸裁剪。五、缓存与长效优化(Long-term Caching)runtimeChunk: ‘single’ ,将 webpack 运行时代码(webpack_require等)提取为独立 runtime.js。六、 开发体验优化(Dev Server)七、性能监控与诊断webpack-bundle-analyzerapp.js 如何导入所有的文件1、对于 Webpack 项目: 使用 require.context。2、对于 Vite 项目: 使用 import.meta.glob,它更强大且支持 TypeScript 类型推断。3、对于 Node.js 项目: 使用 fs.readdir + require。重绘和重排的理解以及如何减少相关使用重绘(Repainting)重绘是指当元素的颜色、背景色、边框颜色等视觉属性发生变化时,浏览器需要重新计算这些元素的像素值并重新绘制到屏幕上。这是一个相对轻量的过程,因为它不会影响布局,只涉及视觉上的变化。触发重绘的情况:1、改变元素的颜色属性,如 color 或 background-color。2、 修改边框颜色。 更改元素的可见性,如使用display 或 visibility 属性。3、 浏览器窗口大小改变时,可能需要重新绘制某些元素。重排(Reflow)重排是一个更复杂且消耗资源的过程。当网页的布局发生改变,比如元素的位置、大小或结构发生更改时,浏览器需要重新计算所有相关元素的位置和大小,然后重新绘制整个页面或页面的一部分。这个过程可能会非常耗时,特别是在大型或复杂的文档中。触发重排的情况:1、修改元素的尺寸,如宽度(width)、高度(height)、内外边距(margin、padding)。2、插入或删除 DOM 元素。3、改变元素的定位方式,如 position 的值。4、字体变化导致的文本重排。5、布局模式的变化,如从流式布局变为网格布局————优化操作:1、批量操作:尽量将多个样式修改放在一个事件处理函数中完成,避免连续的单一操作。2、使用 CSS 动画和过渡:使用 CSS 动画和过渡可以避免JavaScript 中的重排和重绘。3、使用requestAnimationFrame:这可以确保动画在浏览器准备重新绘制屏幕时执行,而不是立即执行。4、避免使用昂贵的布局属性:如 box-sizing: border-box 可以避免在计算尺寸时频繁触发重排。5、 使用 will-change 属性:这个 CSS属性告诉浏览器预先优化元素,如果它可能经常改变。6、 异步加载样式和脚本:避免阻塞页面渲染。sass 和 less的区别, 以及用过的方法Sass 和 Less都是CSS预处理器,它们允许开发者使用变量、嵌套规则、混合(mixins)、函数等高级特性编写CSS,然后编译成普通的CSS文件供浏览器使用。尽管它们的目的相似,但在语法、编译环境、特性细节等方面存在一些差异:Sass (SCSS) 与 Less 的主要区别:1、语法差异: Sass有两种语法格式:Sass(缩进语法)和SCSS(类似CSS的语法)。Sass使用缩进表示嵌套关系,而SCSS的语法更接近CSS,使用大括号和分号。Less 使用的语法与CSS非常相似,增加了变量(@)、嵌套、混合等功能,使用大括号和分号来表示代码块。2、 编译环境: Sass传统上依赖Ruby环境,但现在也支持其他编译工具如Dart Sass,不依赖Ruby环境。 Less可以在客户端通过引入less.js实时编译,或者在服务端通过Node.js环境编译3、 变量符号:Sass 使用$作为变量前缀。Less 使用@作为变量前缀。4、运算符支持: 两者都支持基本的数学运算,但Sass提供了更丰富的运算符和更广泛的运算支持。5、混合器(Mixins)和扩展性:Sass 支持更复杂的混合器和继承功能,允许传参、内容块等高级特性。Less 也支持混合器,但相对简单,不支持内容块等Sass中的某些高级特性。 工具库和生态系统: Sass 有Compass这样的强大工具库,提供更多现成的模块和功能。 Less 的生态相对较小,但依然有丰富的第三方库和插件支持。_使用方法:安装与编译: Sass 可以通过命令行工具(如dart-sass、node-sass或sass gem)安装并编译。 Less也可以通过Node.js的less模块安装并使用命令行编译,或在项目中直接引入less.js进行客户端编译。 编写代码:在项目中,开发者通常会创建.scss(Sass)或.less文件编写预处理代码,然后通过相应的编译工具将其转换为浏览器可识别的.css文件。集成开发环境: 许多现代的前端开发工具和IDE(如Visual StudioCode、WebStorm)都支持Sass和Less的语法高亮、自动编译以及错误提示,便于开发者编写和调试代码。 模块化和组织:两者都鼓励模块化和代码重用,通过导入(@import)其他文件来组织代码结构。npm run build 后的包,是部署在哪个web服务器上(在不使用jenkins的情况下), 部署的流程nginx 的作用前端设计模式 ,工厂模式等模块模式(Module Pattern):允许创建具有私有变量和公有方法的对象。通过闭包来实现私有成员,使用立即执行函数表达式(IIFE)或者ES6模块语法来封装代码。观察者模式(Observer Pattern)/ 发布订阅模式(Pub/Sub):用于实现组件间的解耦通信。一个对象(主题)维持一系列依赖它的观察者对象列表,并在状态变化时通知它们。在前端中,常用于事件处理、数据绑定等场景。工厂模式(Factory Pattern):提供一个创建对象的接口,但隐藏了创建逻辑,使得代码对于如何创建对象的细节不关心。在前端中,常用于创建DOM元素或JavaScript对象。单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。在前端应用中,常用于管理配置、工具类等需要全局访问且只需一个实例的场景。策略模式(Strategy Pattern):定义一系列算法,并将每一个算法封装起来,使它们可以相互替换。前端框架中的路由跳转、动画实现等可能用到此模式。 装饰器模式(DecoratorPattern):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更为灵活。在前端,可以用于增强组件的功能,如添加新的样式或行为。代理模式(Proxy

相关文章:

前端面试题(高级)

前端面试题(高级) 牛客网 刷题 技术栈: Agent 全栈开发 指的是 同时具备前端、后端的能力,并且熟悉 Agent 知识。 前端:Vue、React 二选一即可。即传统前端知识。 后端:Node、Java、Python、Go 四选一(或 四选二)。Java 通常做传统业务开发。Node 和 Python 做 AI 能力…...

全域数学:精细结构常数 α ⁻¹无穷阶几何收敛级数推导

全域数学:精细结构常数 α ⁻无穷阶几何收敛级数推导 作者:乖乖数学 成文日期:2026年05月08日...

从零搭建一个低成本CWDM网络:手把手教你用ADOP光模块搞定企业分支互联

从零搭建一个低成本CWDM网络:手把手教你用ADOP光模块搞定企业分支互联 当企业需要连接分散在不同地理位置的办公点时,传统专线方案的高昂成本往往令人望而却步。而CWDM技术以其经济实惠的特性,成为中小企业分支互联的理想选择。本文将带你一步…...

为什么选择gh_mirrors/docume/documentation?前端架构设计方法论深度解析

为什么选择gh_mirrors/docume/documentation?前端架构设计方法论深度解析 【免费下载链接】documentation Architectural methodology for frontend projects 项目地址: https://gitcode.com/gh_mirrors/docume/documentation gh_mirrors/docume/documentati…...

Jamstack ECommerce主题定制与样式系统:打造独特品牌体验

Jamstack ECommerce主题定制与样式系统:打造独特品牌体验 【免费下载链接】jamstack-ecommerce A starter project for building performant ECommerce applications with Next.js and React 项目地址: https://gitcode.com/gh_mirrors/ja/jamstack-ecommerce …...

gh_mirrors/docume/documentation微前端架构:大型项目的模块化拆分方案

gh_mirrors/docume/documentation微前端架构:大型项目的模块化拆分方案 【免费下载链接】documentation Architectural methodology for frontend projects 项目地址: https://gitcode.com/gh_mirrors/docume/documentation gh_mirrors/docume/documentation…...

PhotoDemon开发者指南:如何基于VB6源码进行二次开发

PhotoDemon开发者指南:如何基于VB6源码进行二次开发 【免费下载链接】PhotoDemon A free portable photo editor focused on pro-grade features, high performance, and maximum usability. 项目地址: https://gitcode.com/gh_mirrors/ph/PhotoDemon PhotoD…...

如何用HashCheck轻松验证文件完整性:新手快速入门指南

如何用HashCheck轻松验证文件完整性:新手快速入门指南 【免费下载链接】HashCheck HashCheck Shell Extension for Windows with added SHA2, SHA3, and multithreading; originally from code.kliu.org 项目地址: https://gitcode.com/gh_mirrors/ha/HashCheck …...

如何快速上手Asio:10个简单示例带你掌握C++网络编程

如何快速上手Asio:10个简单示例带你掌握C网络编程 【免费下载链接】asio Asio C Library 项目地址: https://gitcode.com/gh_mirrors/as/asio Asio是一个功能强大的C库,专为网络和底层I/O编程设计,提供了异步操作模型,帮助…...

3分钟快速上手:免费百度网盘解析工具的完整使用指南

3分钟快速上手:免费百度网盘解析工具的完整使用指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾因百度网盘下载速度缓慢而感到困扰?baidu-…...

保姆级教程:用RaiDrive把阿里云盘挂载成Windows本地硬盘(附最新Token获取方法)

阿里云盘变本地硬盘:RaiDrive全流程配置与高阶玩法指南 你是否经常需要在不同设备间频繁切换阿里云盘客户端?或是苦恼于大文件必须下载才能编辑的繁琐操作?将阿里云盘挂载为Windows本地硬盘,可能是解决这些痛点的最佳方案。想象一…...

支付差异单怎么设计才方便追查?少单、差额、状态不一致分类一次讲透

支付差异单怎么设计才方便追查?少单、差额、状态不一致分类一次讲透 这篇直接按支付差异单来拆,不只讲“有差异就报警”,而是把差异分类、责任归因、处理状态和审计讲具体。 目标是你看完后,能把差异单从一条异常记录,…...

vscode-dark-islands主题下的Elixir开发:模块与函数色彩区分

vscode-dark-islands主题下的Elixir开发:模块与函数色彩区分 【免费下载链接】vscode-dark-islands VSCode theme based off the easemate IDE and Jetbrains islands theme 项目地址: https://gitcode.com/GitHub_Trending/vs/vscode-dark-islands vscode-d…...

HarmonyOS 6 ArkUI 属性动画(.animation)使用文档

文章目录属性动画(.animation)核心1. 动画定义2. 适用场景3. 核心配置项代码逐模块解析1 状态变量定义2 动画 1:宽高尺寸动画(change size)3 动画 2:旋转角度动画(change rotate angle&#xff…...

内存注入技术突破:实现《原神》帧率限制的动态解除方案

内存注入技术突破:实现《原神》帧率限制的动态解除方案 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 核心关键词:内存注入技术、WriteProcessMemory、动态帧率解…...

终极字体美化指南:5分钟让Windows文字显示效果媲美Mac!

终极字体美化指南:5分钟让Windows文字显示效果媲美Mac! 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype 还在为Windows系统上模糊不清的字体而烦恼吗?MacType是一…...

在个人服务器部署私有AI助手:基于Llama与Ollama的本地大模型实践

1. 项目概述:当开源大模型遇上个人服务器最近在折腾个人服务器的时候,发现了一个非常有意思的项目,叫getumbrel/llama-gpt。简单来说,它就是一个让你能在自己的硬件上,比如树莓派、NAS或者一台闲置的旧电脑&#xff0c…...

WarcraftHelper:魔兽争霸3终极优化神器,让经典游戏焕发新生

WarcraftHelper:魔兽争霸3终极优化神器,让经典游戏焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸3…...

磁场定向控制(FOC)硬件平台:STM32G431RBT6的无刷电机驱动支持

STM32G431RBT6:170MHz Cortex-M4工业MCU的技术解析在工业控制、电机驱动和数字电源等领域,微控制器需要在处理性能、模拟集成度和实时响应之间取得平衡。STM32G431RBT6是意法半导体推出的基于ARM Cortex-M4内核的主流型MCU,凭借170MHz主频、数…...

ydotool与xdotool对比分析:为什么选择uinput框架更强大

ydotool与xdotool对比分析:为什么选择uinput框架更强大 【免费下载链接】ydotool Generic command-line automation tool 项目地址: https://gitcode.com/gh_mirrors/yd/ydotool 在Linux自动化工具领域,ydotool作为新一代命令行自动化工具&#x…...

别再手动维护Excel了!用PingCode搭建需求跟踪矩阵(RTM)的保姆级教程

从Excel到专业工具:用PingCode构建需求跟踪矩阵的实战指南 在软件开发和测试领域,需求跟踪矩阵(RTM)是确保产品质量的重要工具。随着项目规模扩大和团队协作复杂度提升,传统Excel表格已经难以满足现代敏捷开发的需求。…...

如何为Nintendo Switch解锁自定义功能?大气层系统完整指南

如何为Nintendo Switch解锁自定义功能?大气层系统完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 你是否希望为你的Nintendo Switch解锁更多可能性?大气层系…...

利用PowerDC Powertree功能,5分钟搞定多路电源系统的仿真设置

5分钟高效配置:PowerDC Powertree在多路电源系统仿真中的实战技巧 当一块主板同时承载着CPU核心供电、内存电压调节和高速IO电源网络时,传统仿真设置往往需要工程师逐一手动配置每个VRM模块和负载点——这个过程可能消耗数小时。而PowerDC的Powertree功能…...

网盘文件下载新革命:告别限速,九大平台直链一键获取

网盘文件下载新革命:告别限速,九大平台直链一键获取 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云…...

Beyond Compare 5密钥生成完全指南:3种方法快速解决评估错误

Beyond Compare 5密钥生成完全指南:3种方法快速解决评估错误 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 如果您正在使用Beyond Compare 5进行文件对比工作,30天评估期…...

ModOrganizer2:游戏模组管理的终极解决方案 - 从新手到专家的完整指南

ModOrganizer2:游戏模组管理的终极解决方案 - 从新手到专家的完整指南 【免费下载链接】modorganizer Mod manager for various PC games. Discord Server: https://discord.gg/ewUVAqyrQX if you would like to be more involved 项目地址: https://gitcode.com…...

Diablo Edit2终极指南:5个简单步骤掌握暗黑破坏神II角色编辑器

Diablo Edit2终极指南:5个简单步骤掌握暗黑破坏神II角色编辑器 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit Diablo Edit2是一款功能强大的暗黑破坏神II角色存档编辑器,专…...

SD-PPP:Photoshop AI插件终极指南 - 5分钟开启AI创作新时代

SD-PPP:Photoshop AI插件终极指南 - 5分钟开启AI创作新时代 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 还在为Photoshop中缺乏AI功能而烦恼吗?SD-PPP这款革命性的免费Photoshop AI插件将…...

MacBook Touch Bar Windows驱动:解锁苹果触控条在Windows系统的完整潜力

MacBook Touch Bar Windows驱动:解锁苹果触控条在Windows系统的完整潜力 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 当MacBook Pro用户在Windows系…...

告别两个电源模块!用TI UCD3138+四开关Buck-Boost,一个电路搞定电池充放电(附原理图分析)

四开关Buck-Boost双向DC/DC变换器在储能系统中的集成设计 户外电源设备正朝着高集成度与低成本方向快速演进。传统方案中,充电与放电电路往往需要两套独立的功率模块,这不仅增加了30%以上的BOM成本,还使得PCB布局复杂度成倍提升。而采用TI UC…...