面试是前端工作求职过程中非常重要的一环,因此准备充分是十分关键的。下面整理了一些常见的前端面试问题及其答案,希望能够对大家有所帮助。
1. HTML 相关问题
1.1 HTML5有哪些重要的新特性?
- 语义化标签:例如
<header>、<nav>、<footer>等。 - 音视频元素:
<video>和<audio>可以在网页中直接播放音视频。 - 本地存储:
localStorage和sessionStorage可以用来在浏览器端存储数据。 - 表单增强:新增的表单元素,如
<input type="date">、<input type="email">、<input type="number">等。
1.2 什么是语义化标签?
语义化标签是指在HTML中使用具有明确意义的标签,能够更好地描述网页文档结构。语义化标签不仅能够提高代码的可读性,而且能够使搜索引擎更好地理解网页内容,提升网页的SEO。
1.3 <script>标签有哪些使用方式?
- 直接在HTML中使用
<script>标签,将JavaScript代码写在<script>标签内部。 - 将JavaScript代码封装到外部文件中,然后通过
src属性引入文件,如<script src="script.js"></script>。
1.4 defer和async有什么区别?
defer属性用于延迟脚本的执行,脚本会在文档完全解析和显示之后再执行。async属性用于异步加载脚本,脚本的加载和文档解析可以同时进行,脚本加载完成后立即执行。
2. CSS 相关问题
2.1 CSS盒模型有哪些?
CSS盒模型由内容区域、内边距、边框和外边距组成。
2.2 什么是BFC(块级格式化上下文)?
BFC是一种Web页面布局方式,在BFC中,页面上的元素会按照一定规则进行排列和布局。BFC可以解决一些常见的布局问题,如垂直外边距折叠、浮动元素的高度塌陷等。
2.3 如何清除浮动?
清除浮动可以用于解决父元素高度坍塌的问题。
以下是几种常见的清除浮动的方式:
- 使用额外的元素进行清除,如
<div style="clear: both;"></div>。 - 使用伪元素进行清除,如
.clearfix::after {content: ""; display: block; clear: both;}。 - 使用
overflow: hidden;清除浮动(注意会触发BFC)。
3. JavaScript 相关问题
3.1 常见的数据类型有哪些?
JavaScript中的常见数据类型有Undefined、Null、Boolean、Number、String、Object和Symbol。
3.2 ==和===有什么区别?
==用于比较值是否相等,会进行隐式类型转换。===用于比较值和类型是否完全相等,不会进行隐式类型转换。
3.3 什么是闭包?
闭包是指有权访问另一个函数作用域中的变量的函数。常见的应用包括封装私有变量和在函数内部创建定时器。
4. 其他问题
4.1 什么是响应式设计?
响应式设计是一种能够在不同设备上提供最佳用户体验的设计方式。通过使用媒体查询、弹性网格布局、图片和字体的自适应等技术,使得网页能够根据用户设备的不同进行自动适配。
4.2 什么是跨域?
跨域是指在浏览器中,通过脚本访问另一个域名下的资源时,由于浏览器的安全策略,会受到限制。解决跨域问题可以使用CORS(跨域资源共享)或JSONP(JSON with padding)等方式。
以上是一些常见的前端面试问题及其答案整理,希望能够对大家在前端面试中有所帮助。祝大家面试顺利!
评论 (0)