版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026Web前端高频面试题(知乎风格+超详细真实面试答案)整理了近期大厂、中小厂前端面试高频真题,没有空洞套话,全部是面试现场可直接口述的答案,贴合实际开发场景,覆盖基础、核心原理、工程化、框架、网络跨域等必考知识点,适合刷题复盘、面试突击。一、CSS核心面试题1、px、em、rem、vw、vh有什么区别?实际项目怎么选?参考答案:这五个都是前端常用尺寸单位,核心差异是参考基准不同,适配场景完全不一样:1.px:绝对像素单位,尺寸固定,不会随页面、设备缩放变化,适合固定尺寸的按钮、边框、图标,是PC端常用单位。2.em:相对单位,默认相对于当前元素父级字体大小,嵌套层级多的时候会出现尺寸叠加错乱,现在项目基本很少用。3.rem:相对单位,只相对于html根节点字体大小,层级不会错乱,是移动端适配主流单位,通过动态修改根字体大小,就能实现整站等比适配。4.vw/vh:视口单位,1vw等于屏幕可视宽度的1%,1vh等于屏幕可视高度的1%,无需依赖根字体配置,适配更简单,适合移动端全屏布局、自适应模块。项目实战选择:PC端优先px;移动端主流vw适配,老项目多采用rem适配;完全摒弃em,避免布局错乱。2、CSS盒模型是什么?标准盒模型和怪异盒模型的区别?参考答案:CSS盒模型是页面元素布局的核心规则,所有HTML元素都可以看作一个盒子,由内容区、内边距、边框、外边距四部分组成。1.标准盒模型(content-box):元素设置的width/height只对应内容区尺寸,padding和border会额外撑开盒子,元素实际宽高=设定宽高+padding+border。2.怪异盒模型(border-box):元素设置的width/height是盒子整体尺寸,包含内容区、padding、border,调整内边距和边框不会撑大盒子,内容区尺寸会自动压缩。实际开发中我们都会统一设置box-sizing:border-box,方便精准控制布局,不用额外计算尺寸。3、垂直居中的常用方法,至少说出3种参考答案:日常开发最常用、兼容性最好的三种方案,适配不同场景:1.Flex居中(首选):父元素设置display:flex;justify-content:center;align-items:center,代码简洁、适配性强,支持不定高宽元素,现代项目主流方案。2.绝对定位+transform:父元素相对定位,子元素绝对定位,设置top:50%;left:50%;transform:translate(-50%,-50%),适合需要脱离文档流的元素布局。3.绝对定位+margin负值:子元素固定宽高,绝对定位后设置top、left为50%,margin-top、margin-left设为自身宽高一半的负值,兼容性极佳,适配老旧浏览器。二、JavaScript核心高频题1、讲讲你对闭包的理解?闭包的优缺点和内存问题怎么处理?参考答案:简单说,函数嵌套函数,内层函数访问外层函数的变量,就形成了闭包。内层函数会保留对外层作用域变量的引用,外层函数执行结束后,变量不会被垃圾回收。优点:可以实现变量私有化,避免全局变量污染;能够保存函数执行状态,常用于防抖节流、缓存数据、模块化封装。缺点:会造成变量常驻内存,无法自动回收,使用不当容易引发内存占用过高、内存泄漏问题。优化方案:使用完闭包变量后手动赋值为null;避免在循环中批量创建闭包;合理控制闭包使用场景,不滥用闭包存储临时数据。2、JS事件循环(EventLoop)是什么?执行顺序是怎样的?参考答案:JS是单线程语言,为了避免异步代码阻塞主线程,就有了事件循环机制,核心作用是统筹调度同步、异步任务,保证代码非阻塞执行。整体执行顺序:1.优先执行同步代码,执行栈清空;2.执行所有微任务(Promise.then、async/await、queueMicrotask);3.执行一轮宏任务(setTimeout、setInterval、AJAX请求);4.重复上述步骤,循环往复,这就是事件循环。核心记住:同步优先,微任务先于宏任务,这是面试常考的代码执行顺序判断题核心依据。3、this的指向规则,详细说明参考答案:this指向完全由函数调用方式决定,和定义位置无关,五种核心场景:1.普通函数直接调用:this指向全局window(浏览器环境);2.对象方法调用:this指向调用该方法的对象;3.构造函数调用:this指向new出来的实例对象;4.箭头函数:没有自己的this,继承外层作用域的this,且无法被bind、call、apply修改;5.bind/call/apply绑定:this强制指向绑定的第一个参数。4、Promise的理解?常用方法有哪些?参考答案:Promise是解决JS异步回调地狱的方案,用来封装异步操作,统一异步代码的书写规范,让异步逻辑更清晰。Promise有三种状态:pending(等待)、fulfilled(成功)、rejected(失败),状态一旦改变就不会再变更。常用核心方法:1.实例方法:.then()处理成功回调、.catch()捕获异常、.finally()无论成功失败都会执行;2.静态方法:Promise.all()所有请求成功才返回结果、Promise.race()谁先完成返回谁、Promise.resolve()/reject()快速创建Promise实例。三、网络与跨域面试题1、什么是同源策略?为什么要有跨域?参考答案:同源策略是浏览器的核心安全机制,协议、域名、端口号三者有一个不同,就属于跨域。浏览器会拦截跨域的AJAX请求、禁止读取跨域DOM、限制本地存储跨域访问,目的是防止恶意网站窃取用户数据、发起非法请求,保障前端访问安全。日常开发中,前端页面部署在静态服务器,后端接口部署在接口服务器,域名端口不一致,就会触发跨域限制,所以需要做跨域处理。2、常用跨域解决方案及优缺点对比参考答案:1.CORS跨域资源共享(生产首选):后端配置响应头放行指定域名,支持所有请求方式,安全稳定,是线上项目主流方案,缺点是需要后端配合。2.Nginx反向代理:本地开发和线上部署都可用,通过Nginx转发请求,伪装成同源请求,适配性强,无需前端改代码。3.JSONP:利用script标签无跨域限制的特性实现,仅支持GET请求,安全性差,只用来兼容老旧项目,新项目基本不用。4.postMessage:专门解决iframe页面跨域通信问题,仅限页面间数据传递,不适用接口请求跨域。3、HTTP和HTTPS的区别?参考答案:1.安全性:HTTP是明文传输,数据容易被窃取、篡改;HTTPS基于SSL/TLS加密传输,数据加密、校验、防篡改,安全可靠。2.端口差异:HTTP默认80端口,HTTPS默认443端口。3.证书要求:HTTP无需证书;HTTPS需要配置CA证书,需要付费或申请免费证书。4.性能:HTTPS多了加密、解密、证书校验过程,请求速度比HTTP稍慢,但现代网络环境下差异可忽略。线上项目必须使用HTTPS,浏览器对HTTP网站会标记不安全,且很多浏览器功能仅支持HTTPS域名。四、工程化与构建工具1、VueCLI和Vite的核心区别?为什么现在新项目都用Vite?参考答案:1.底层原理不同:VueCLI基于Webpack打包,采用打包编译模式,启动需要打包所有文件;Vite基于ESM原生模块化+esbuild预构建,启动无需打包,极速响应。2.启动与热更新速度:VueCLI项目越大启动、热更新越慢;Vite冷启动秒开,热更新精准更新单个模块,速度极快。3.配置复杂度:VueCLI配置繁琐,需要处理大量webpack配置;Vite开箱即用,默认配置满足大部分场景,自定义配置简洁。4.适配场景:VueCLI更适配Vue2老旧项目;Vite是官方主推工具,适配Vue3新项目,打包体积更小、构建效率更高。2、Babel的编译流程是怎样的?参考答案:Babel核心是把ES6+高版本语法编译为浏览器兼容的低版本语法,整体分三步:1.Parse解析:读取源代码,解析生成AST抽象语法树,把代码转换成结构化数据;2.Transform转换:遍历AST语法树,通过各类插件修改、替换语法节点,完成高版本语法转低版本;3.Generate生成:把转换后的AST语法树,重新生成浏览器可识别的JS代码。五、Vue框架高频题1、Vue双向绑定原理?Vue2和Vue3有什么区别?参考答案:Vue2双向绑定原理:基于Object.defineProperty()劫持对象属性的getter、setter,数据变化触发视图更新,视图修改同步更新数据。缺点是无法监听新增、删除属性,也不能监听数组下标、长度变化。Vue3双向绑定原理:基于ES6Proxy代理整个对象,能够监听对象属性的新增、删除、数组变更,监听范围更广、兼容性更强,响应式性能更优。核心差异总结:Vue2是属性级劫持,存在监听盲区;Vue3是对象级代理,解决了Vue2的响应式缺陷,同时优化了打包体积、渲染性能。2、Vue组件通信方式有哪些?适用场景?参考答案:1.父子组件通信:父传子用props,子传父用$emit,简单高效,适合基础父子交互;2.多层级嵌套通信:用provide/inject,无需逐层传递props,适合深层组件数据共享;3.全局任意组件通信:Vue2用EventBus,Vue3用mitt,适合小型项目简单全局通信;大中型项目统一用Vuex/Pinia状态管理;4.兄弟组件通信:借助父组件中转,或直接用状态管理,简洁清晰。六、实战手写高频题1、简单手写防抖函数参考答案(面试可直接默写):PlainText
//防抖:频繁触发事件,停止触发后延迟执行
functiondebounce(fn,delay=300){
lettimer=null
returnfunction(...args){
if(timer)clearTimeout(timer)
timer=setTimeout(()=>{
fn.apply(this,args)
timer=null
},delay)
}
}适用场景:搜索框输入、窗口resize、鼠标移入移出等频繁触发的事件。2、简单手写节流函数参考答案(面试可直接默写):PlainText
//节流:频繁触发事件,固定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年机动车查验员考试试题及答案解析
- 急性心力衰竭的护理
- 2026年健康管理师三级理论冲刺试卷及答案
- 2026年节水知识竞赛通关试卷200题(含答案)
- 2026年居家养老护理员职业技能上岗考试题库与答案
- 2026年美甲师(初级专业技能)试题及答案
- 2026年内部审计岗位考核试题(附答案)
- 2026年农村客运便民服务管理培训试卷及答案
- 2026年普法能力检测试卷及参考答案(典型题)
- 2026年人工智能发展展望与挑战试题及答案
- 建材行业领域主要职业危害及防治
- 山中问答课件
- 2026届新高考英语冲刺热点复习With的复合结构
- 数字营销基础(第二版)课件 2.2数字营销技术
- 2025年无人机装调检修工职业技能鉴定考试题库及答案
- 2025年注册环保工程师专业基础考试真题卷(附解析)
- 《医事法学》电子教案
- DB35T 2162-2023 基于分布式光纤传感的跨江燃气管道运行监测技术规范
- 师德师风专题讲座主题课件
- 2024年高中英语衡水体书法练字字帖
- 工业设计技术-Geomagic Design X 逆向设计实用教程 课件 项目5、6 遥控器建模、连杆建模
评论
0/150
提交评论