前端面试精华:闭包、跨域、垂直居中与性能优化

需积分: 5 0 下载量 61 浏览量 更新于2024-08-05 收藏 57KB MD 举报
前端面试是开发者求职过程中的关键环节,考察了应聘者的理论知识和技术实践能力。以下是面试中可能涉及的一些核心知识点: 1. **闭包**:闭包是指有权访问另一个函数内部变量的函数。它允许在函数内部创建私有变量和方法,这些变量不会被垃圾回收机制清除,从而实现数据的持久化。应用场景包括函数防抖和函数节流,前者用于延迟执行多次调用,后者限制连续执行的频率,以提高性能。 2. **跨域问题**:浏览器的同源策略导致不同源间的通信受限,即协议、端口或域名不同视为跨域。解决方法包括使用JSONP(仅限GET请求),利用script标签的跨域特性配合回调函数,CORS(跨源资源共享,需后端支持),以及在Vue项目中通过配置`vue.config.js`的`devServer.proxy`代理功能。 3. **垂直居中**:常见的垂直居中方法有弹性布局(`align-items: center`)、设置`line-height`与`height`相等、使用绝对定位配合百分比偏移和`margin`,或者`transform: translate(-50%, -50%)`使元素置于其父元素中心。 4. **清除浮动**:主要有三种方式:在浮动元素下方添加`<br clear="both">`,使用伪元素`::after`清除浮动,或者父元素设置`overflow: hidden`和`zoom: 1`来隐式清除浮动。 5. **性能优化**:面试者可能会被问到如何提升应用性能,包括减少HTTP请求(如合并文件、使用预加载、懒加载图片和数据),利用CDN加速外部资源加载,逻辑与组件复用,以及使用防抖和节流技术处理频繁操作。 6. **Vue中的数据传递**:Vue提供了多种数据交互方式,包括父子组件间的`props`和`$emit`,非父子组件间的事件中心(eventBus,适合小型项目,也可用Vuex管理状态)。 7. **数组常用方法**:面试者应该熟悉如`filter()`、`map()`、`sort()`、`slice()`等基础操作,以及更高级的`push()`, `shift()`, `unshift()`, `pop()`, `indexOf()`, `concat()`, 和`join()`等方法。 8. **HTML5新特性**:面试者需要了解现代HTML5的语义化标签(如<nav>、<header>、<footer>、<article>、<aside>和<section>等),这些标签有助于提升网页结构的可读性和SEO优化。 这些知识点是前端面试中不可或缺的一部分,掌握它们能帮助求职者展示出扎实的技术功底和实践经验。