全面掌握前端技术:前端面试题目深入解析

需积分: 9 2 下载量 22 浏览量 更新于2025-01-01 收藏 3KB ZIP 举报
资源摘要信息:"前端面试题汇总" HTML知识点: 1. DOCTYPE是文档类型声明,用于告诉浏览器使用哪种HTML或者XHTML规范来解析文档。它不是HTML标签,但必须放在HTML文档的第一行。常见的DOCTYPE声明如`<!DOCTYPE html>`,表示文档是标准的HTML5文档。 2. meta标签是HTML文档中用来定义元数据的标签,比如文档的字符集、描述、关键词等。它位于HTML文档的<head>部分,例如: - `<meta charset="UTF-8">`用于指定文档的字符编码; - `<meta name="description" content="页面描述">`用于描述网页; - `<meta name="keywords" content="关键词">`用于提供页面关键词。 3. 块级标签和行内标签是HTML元素的两种显示方式: - 块级标签(Block-level elements)例如`<div>`, `<p>`, `<h1>`-`<h6>`, `<ul>`, `<ol>`, `<table>`等,在默认情况下占据整个容器的宽度,并且前后会换行显示; - 行内标签(Inline elements)例如`<span>`, `<a>`, `<img>`, `<input>`, `<textarea>`, `<button>`等,在默认情况下仅占据容器内的空间,并且前后不会换行显示。 4. 语义化标签是HTML5中新增的一类标签,用于提高代码的可读性和可访问性。例如`<header>`, `<footer>`, `<section>`, `<article>`, `<nav>`, `<aside>`等。 JavaScript知识点: 1. 基本数据类型包括字符串(String)、数字(Number)、布尔(Boolean)、null、undefined、以及ES6新增的Symbol和BigInt。 2. Symbol是ES6引入的一种新的原始类型,表示唯一的标识符。它可以通过`Symbol()`函数创建,并且可以传入字符串作为描述符,例如`let sym = Symbol('my symbol');`。Symbol的特点包括不可枚举、不能与其他值进行运算、可以作为对象属性的键等。 3. 箭头函数是ES6中引入的一种函数表达式的新写法,形式为`(参数) => {函数体}`。箭头函数的特点包括:没有自己的this,它会捕获其所在上下文的this值;没有arguments对象,但可以通过rest参数代替;不能作为构造函数使用;不支持new关键字。 4. Map和Object的主要区别在于: - Map对象保存键值对,并且能够记住原始插入的顺序,键可以是任何类型,包括函数、对象或任意基本类型; - Object对象也能够保存键值对,但键通常为字符串,且属性名会被转换为字符串,如果传入非字符串类型则会被转换。 5. 原型链是JavaScript实现继承的一种方式。每个对象都有一个内置的`[[Prototype]]`属性,指向它的原型对象。当访问一个对象的属性或方法时,如果在当前对象上找不到,那么JavaScript引擎会沿着原型链向上查找,直到找到该属性或方法。原型链的特点包括: - 所有的对象都有一个原型对象,空对象除外(如`Object.create(null)`); - 原型对象本身也有原型,直到`null`为止; - 原型链是实现继承的关键,允许子对象访问父对象的属性。 6. 防抖(debounce)和节流(throttle)是两种常见的减少函数执行频率的技术: - 防抖是指在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时; - 节流是指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一时间间隔内多次触发,只有一次生效。 7. var、let和const是JavaScript中声明变量的三种方式。它们的主要区别在于: - var声明的变量存在变量提升,可以重复声明,且作用域为函数作用域或全局作用域; - let和const声明的变量具有块级作用域,不存在变量提升,且不能重复声明。let允许变量重新赋值,而const则声明一个常量,不可更改。 8. this指向的上下文依赖于函数执行时的调用方式。常见的this指向情况包括: - 在全局上下文中,this指向全局对象; - 在函数调用时,严格模式下this为undefined,非严格模式下为全局对象; - 在对象的方法中调用,this指向调用该方法的对象; - 使用call、apply或bind显式绑定函数的this; - 在箭头函数中,this继承自它所在的上下文。 9. 闭包是JavaScript的一个重要概念,它是能够读取其他函数内部变量的函数。闭包的使用场景包括模块化、封装私有变量、数据封装等。 CSS知识点: 1. div垂直水平居中的方法有多种,常见的有使用Flexbox布局、Grid布局,或者使用CSS的绝对定位和transform属性。 - Flexbox布局:设置父容器为`display: flex;`,然后使用`justify-content: center;`和`align-items: center;`来实现水平和垂直居中; - Grid布局:设置父容器为`display: grid;`,然后使用`place-items: center;`来实现水平和垂直居中; - 绝对定位配合transform:设置父容器为`position: relative;`,子元素为`position: absolute;`,并使用`top: 50%;`和`left: 50%;`,然后使用`transform: translate(-50%, -50%);`来调整子元素的位置,确保居中。 2. CSS选择器的优先级是由选择器的具体性和来源决定的。通常,内联样式(直接在元素上使用style属性)优先级最高,紧接着是ID选择器、类选择器、伪类、属性选择器、元素选择器,最后是通用选择器(*)。选择器的具体性可以使用CSS Specificity公式计算得出。 3. BFC(Block Formatting Context,块格式化上下文)是Web页面的可视CSS渲染的一部分,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。BFC可以防止外边距折叠(margin collapsing),并且可以包含浮动元素。触发BFC的常见方式包括设置浮动(float)、定位(position)、overflow不为visible的块级元素等。