版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年前端高频面试题及详细答案(实战落地版)一、JavaScript核心基础(高频必考)1、讲讲var、let、const的区别,实际开发怎么选用?详细答案:三者核心区别集中在作用域、变量提升、重复声明、是否可修改四个维度:1.作用域:var是函数作用域,let、const是块级作用域({}、if、for内部独立作用域);2.变量提升:var存在变量提升,声明前置、赋值后置,初始值为undefined;let、const存在暂时性死区,绑定当前块级作用域,在声明前无法访问,不会初始化为undefined;3.重复声明:var允许重复声明变量;let、const同一作用域禁止重复声明;4.可修改性:var、let可重新赋值;const声明的是常量,禁止重新赋值,但若值为引用类型(对象、数组),可修改内部属性。开发选用原则:日常开发优先使用const,只有变量需要重新赋值时用let,完全不用var,避免作用域污染、变量提升带来的隐性bug。2、什么是闭包?闭包的用途和副作用是什么?如何避免闭包内存问题?详细答案:闭包是指内层函数能够访问外层函数作用域变量,且外层函数执行结束后,内层函数依然持有外层变量的引用,不会被垃圾回收。简单说:函数嵌套,内层引用外层变量,外层执行完毕,变量不销毁。核心用途:1.私有化变量:模拟私有作用域,避免全局变量污染;2.缓存数据:保存函数执行的中间结果,避免重复计算;3.延续作用域:定时器、事件回调、异步请求中,保留当前作用域变量;4.实现柯里化、防抖节流等工具函数。副作用:会造成变量常驻内存,无法及时回收,频繁使用容易引发内存泄漏。优化方案:手动置空闭包引用的变量、执行完回调后销毁函数、避免循环中滥用闭包、组件卸载时清除定时器/事件监听。3、原型和原型链彻底理解,instanceof原理是什么?详细答案:1.原型:每个函数都有prototype(显式原型),是实例的公共原型对象;每个实例对象都有__proto__(隐式原型),指向构造函数的prototype。原型上的方法和属性会被所有实例共享,节省内存。2.原型链:当访问对象的属性/方法时,自身没有就会通过__proto__向上查找,直到Ototype,最终指向null,这条查找链路就是原型链。3.instanceof原理:检测构造函数的prototype属性是否出现在实例对象的原型链上。遍历实例的原型链,逐级对比,匹配成功返回true,遍历到null未匹配则返回false。注意:instanceof无法判断基本数据类型,只能判断引用类型,且原型链可以手动修改,结果存在可伪造性。4、Promise三种状态、执行机制,Promise.all/race/allSettled区别及场景详细答案:Promise核心三种状态:pending(等待)、fulfilled(成功)、rejected(失败),状态一旦改变不可逆,只能从pending转为成功或失败。执行机制:Promise构造函数同步执行,then/catch/finally属于微任务,优先级高于定时器、ajax等宏任务,在主线程同步代码执行完毕后立即执行。静态方法区别与场景:1.Promise.all:所有请求成功才返回成功结果数组,任意一个失败直接返回失败。适用于多个接口必须全部成功的场景,如页面初始化批量请求数据。2.Promise.race:谁先执行完成就返回谁的结果(成功/失败)。适用于接口超时拦截、抢答、限时请求场景。3.Promise.allSettled:等待所有请求执行完毕,无论成功失败,返回每一个请求的状态和结果。适用于批量操作无需全部成功的场景,如批量上传文件、批量删除数据,需要统计成功和失败列表。5、宏任务和微任务的区别?浏览器事件循环完整执行顺序详细答案:宏任务:耗时较长的任务,包括script整体代码、setTimeout、setInterval、AJAX、DOM事件、UI渲染。微任务:优先级更高、即时执行的任务,包括Promise.then/catch、async/await、queueMicrotask、MutationObserver。浏览器事件循环完整顺序:1.执行主线程同步代码;2.清空当前所有微任务队列(一次性全部执行完);3.执行一次宏任务队列最靠前的一个任务;4.重复2、3步骤,循环往复。核心重点:微任务永远优先于宏任务执行,每一轮宏任务执行完毕,必须清空微任务队列,再开启下一轮宏任务。二、Vue3核心高频(2026主流框架考点)1、Vue3相比Vue2的核心优化和升级点详细答案:1.底层重构:Vue3采用TS重写,类型支持完善,适配大型项目,报错提示更精准;Vue2基于JS编写,类型校验薄弱。2.响应式升级:Vue2使用Object.defineProperty,存在数组、对象新增属性无法监听的缺陷,需要$set补救;Vue3使用Proxy代理,支持数组所有方法、对象新增/删除属性、下标修改,监听无死角。3.编程范式:新增CompositionAPI,替代OptionsAPI,支持逻辑拆分、复用,解决大型组件代码混乱、逻辑分散问题,适合中大型项目;OptionsAPI适合小型项目、快速开发。4.性能优化:支持静态节点提升、补丁标记,减少DOM比对开销;打包体积更小,Tree-Shaking按需引入,减少冗余代码。5.新增特性:Teleport组件穿透挂载、Suspense异步组件加载、多根节点、自定义渲染器等。2、Vue3响应式原理详细流程,ref和reactive区别详细答案:Vue3响应式核心流程:通过Proxy拦截数据的读取、修改、删除操作+依赖收集+触发更新。1.数据初始化:通过Proxy劫持目标数据的get、set、deleteProperty方法;2.依赖收集:组件渲染时读取数据,触发get拦截,将当前组件副作用函数收集到依赖桶中;3.触发更新:数据被修改时,触发set拦截,取出对应依赖的副作用函数,重新执行组件渲染,更新视图。ref和reactive区别:1.适用类型:ref支持基本数据类型+引用类型;reactive仅支持对象、数组等引用类型,不支持基本类型;2.底层实现:ref本质是创建一个包含value属性的响应式对象,通过Proxy劫持value;reactive直接代理目标对象;3.使用方式:ref模板中可直接使用,脚本中需要.value访问;reactive直接访问属性即可;4.场景选用:简单数据、基本类型用ref;表单对象、复杂状态、多层级数据用reactive。3、setup函数执行时机、语法糖特点,scriptsetup优势详细答案:setup是Vue3组合式API的入口函数,执行时机在beforeCreate之前,此时组件实例尚未创建,无法访问this。传统setup选项需要手动return变量和方法,模板才能使用,代码冗余。scriptsetup语法糖核心优势(2026项目通用写法):1.无需手动return变量、函数,直接在模板使用,代码更简洁;2.组件、指令引入后自动注册,无需components配置;3.自带顶层await,支持异步setup,无需额外封装;4.编译优化更好,减少运行时开销,性能优于传统setup;5.天然支持TS,类型推导更顺畅。4、Vue3生命周期,和Vue2对应关系,常用钩子场景详细答案:Vue3组合式API生命周期钩子(常用):1.onBeforeMount/onMounted:挂载前/挂载完成,onMounted用于页面初始化请求接口、获取DOM、绑定事件;2.onBeforeUpdate/onUpdated:更新前/更新完成,用于DOM更新后操作节点;3.onBeforeUnmount/onUnmounted:卸载前/卸载完成,核心用于清除定时器、解绑事件、取消请求,防止内存泄漏;4.onActivated/onDeactivated:缓存组件激活/失活,配合keep-alive使用;5.onErrorCaptured:捕获子组件错误,用于全局错误拦截。和Vue2对应关系:Vue2的beforeCreate、created被setup替代,其余钩子功能一致,仅命名调整为onXxx格式。5、Vue3如何解决组件通信繁琐问题?常用通信方式及适用场景详细答案:1.父子通信:父传子props,子传父defineEmits,简单高效,适用于直接父子组件;2.祖孙/跨层级通信:provide/inject,无需层层传参,适合多层嵌套组件共享状态;缺点是响应式需要手动处理,数据修改不直观;3.全局通信:Pinia,替代Vuex,语法简洁、无模块嵌套、TS友好、支持按需导入,是2026项目全局状态管理首选;4.事件总线:mitt,轻量简洁,替代Vue2的bus,适合小型项目简单跨组件通信;5.模板引用:defineExpose,子组件暴露方法/属性,父组件直接调用,适合父组件主动操作子组件。三、浏览器与性能优化(面试重点加分项)1、浏览器从输入网址到页面渲染完成的完整流程详细答案:1.DNS解析:将域名解析为服务器IP地址;2.TCP三次握手:建立客户端与服务器可靠连接;3.HTTPS握手:验证证书、协商加密规则,建立安全通道;4.HTTP请求与响应:客户端发送请求,服务器返回HTML、CSS、JS资源;5.解析渲染:HTML解析生成DOM树,CSS解析生成CSSOM树,合并为渲染树;6.布局(回流):计算元素大小、位置;7.绘制(重绘):根据布局信息绘制像素;8.合成:将页面分层,合并图层展示到屏幕;9.关闭连接:TCP四次挥手断开连接。2、回流和重绘的区别?如何减少回流重绘优化页面性能?详细答案:区别:1.重绘:仅修改元素颜色、背景、透明度等不影响布局的样式,只重新绘制像素,开销较小;2.回流(重排):修改元素宽高、位置、字体、display等影响页面布局的样式,需要重新计算整个页面布局,开销极大,会触发重绘。优化方案:1.批量修改样式:统一修改class类名,不逐行修改style样式;2.离线修改DOM:使用文档碎片、隐藏元素后修改,修改完成再展示;3.开启硬件加速:使用transform、opacity做动画,仅触发合成层,不触发回流重绘;4.避免频繁读取DOM布局属性,减少浏览器强制同步布局。3、前端项目首屏优化实战方案(2026企业落地版)详细答案:1.资源压缩:JS、CSS、图片压缩,开启Gzip压缩,减少资源体积;2.按需加载:路由懒加载、组件异步加载、图片懒加载,首屏只加载核心资源;3.分包策略:webpack/vite分包打包,分离公共依赖、第三方库,避免首屏打包体积过大;4.缓存优化:静态资源配置强缓存、协商缓存,重复访问无需重新请求;5.骨架屏+加载动画:优化首屏空白体验,提升用户感知;6.移除冗余代码:Tree-Shaking清除无效代码,删除废弃依赖、重复工具方法;7.接口优化:首屏接口合并、接口缓存、避免首屏多余请求。四、前端工程化(Vite/Webpack+TS)1、Vite和Webpack的核心区别?为什么现在项目优先用Vite?详细答案:1.构建原理不同:Webpack是打包构建,开发环境会将所有模块打包编译后启动服务,项目越大启动越慢;Vite基于浏览器原生ESModule,开发环境无需打包,按需加载模块,启动速度极快;2.热更新机制:Webpack热更新需要重新编译模块、打包,大型项目更新卡顿;Vite精准定位修改模块,只更新对应模块,热更新秒级响应;3.生产构建:Webpack打包稳定、插件生态成熟,适配各种复杂场景;Vite生产构建基于Rollup,打包体积更小、效率更高;4.适用场景:小型、中型、Vue/React新项目优先Vite;老旧大型复杂项目、特殊定制打包需求保留Webpack。2、TypeScript核心作用,日常开发常用类型详细答案:核心作用:为JS添加静态类型校验,开发阶段提前发现类型错误,规避线上bug;规范团队代码写法,提升代码可维护性、可读性;支持代码智能提示,提升开发效率,适配大型团队协作项目。日常高频常用类型:基础类型:string、number、boolean、null、undefined、void;复杂类型:数组、元组、枚举、接口interface、类型别名type;高级类型:联合类型、交叉类型、泛型、可选属性、只读属性、任意类型u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 口岸传染病快速检测技术科普课件
- 草原兽医人畜共患病职业防护课件
- 2025年广东专升本理科考试题库(含答案)
- 2026本溪高级中学高一入学英语分班考试真题含答案
- 2026年安徽省马鞍山市高一数学分班考试真题含答案
- 2025年专升本物理真题及答案
- 2026高考政治时事政治考试试卷及答案
- (2026)执业药师真题试卷及答案
- (2026)执业药师继续教育试题及答案
- 冬至吃羊肉为什么上火课件
- 生产运作管理 第7版 课件 第十一章 制造业的作业计划与控制
- 2026气凝胶绝热材料在储能系统中的应用价值评估报告
- 2026新教材语文 7 培养德智体美劳全面发展的社会主义建设者和接班人 教学课件
- 高考英语阅读理解:六大类型题目-解题方法
- 2026年湖南高速铁路职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年中国电信校园招聘考试笔试试题及答案
- 重庆市第九人民医院招聘笔试真题2025
- 化工原理课件第二章总结
- 2026年中级经济师《知识产权实务》考试历年机考真题集附参考答案详解(完整版)
- 2026年专升本化学全真模拟试卷
- 白银公司历年招聘试题汇 总笔试试题
评论
0/150
提交评论