温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Web前端面试题及答案有哪些

发布时间:2022-07-07 11:51:57 来源:亿速云 阅读:224 作者:iii 栏目:web开发

Web前端面试题及答案有哪些

目录

  1. HTML
  2. CSS
  3. JavaScript
  4. ES6
  5. Vue
  6. React
  7. Webpack
  8. HTTP/HTTPS
  9. 浏览器
  10. 性能优化
  11. 安全
  12. 数据结构与算法
  13. 设计模式
  14. 其他

HTML

1. HTML5 有哪些新特性?

答案:

HTML5 引入了许多新特性,主要包括:

  • 语义化标签:如 <header><footer><article><section> 等,使得页面结构更加清晰。
  • 表单增强:新增了 <input> 类型如 emaildaterange 等,以及 placeholderrequired 等属性。
  • 多媒体支持:新增了 <audio><video> 标签,使得在网页中嵌入音频和视频更加方便。
  • Canvas 和 SVG:提供了 <canvas> 标签用于绘制图形,以及 SVG 用于矢量图形。
  • 本地存储:引入了 localStoragesessionStorage,用于在客户端存储数据。
  • Web Workers:允许在后台运行 JavaScript 代码,避免阻塞主线程。
  • WebSocket:提供了全双工通信协议,使得客户端和服务器之间的实时通信更加高效。
  • 地理定位:通过 navigator.geolocation API 获取用户的地理位置。

2. 什么是语义化标签?为什么要使用语义化标签?

答案:

语义化标签是指使用具有明确含义的 HTML 标签来描述页面的结构和内容。常见的语义化标签包括 <header><footer><article><section><nav> 等。

使用语义化标签的好处包括:

  • 提高可读性:语义化标签使得代码更加清晰,易于理解和维护。
  • SEO 优化:搜索引擎能够更好地理解页面内容,从而提高页面的搜索排名。
  • 无障碍访问:屏幕阅读器等辅助技术能够更好地解析页面内容,提升用户体验。
  • 代码复用:语义化标签使得页面结构更加模块化,便于代码复用和维护。

3. 什么是 DOCTYPE?它的作用是什么?

答案:

DOCTYPE 是文档类型声明,用于告诉浏览器当前文档使用的是哪种 HTML 或 XHTML 规范。它通常位于 HTML 文档的最前面。

DOCTYPE 的作用包括:

  • 触发标准模式:浏览器根据 DOCTYPE 来决定使用哪种渲染模式(标准模式或怪异模式)。标准模式会按照 W3C 标准来渲染页面,而怪异模式则会模拟旧版浏览器的行为。
  • 验证文档DOCTYPE 可以帮助验证工具检查文档是否符合指定的 HTML 或 XHTML 规范。

例如,HTML5 的 DOCTYPE 声明如下:

<!DOCTYPE html>

4. HTML 中的 data-* 属性有什么作用?

答案:

data-* 属性是 HTML5 中引入的一种自定义属性,用于在 HTML 元素中存储私有数据。这些数据可以通过 JavaScript 访问和操作。

data-* 属性的命名规则是:以 data- 开头,后面可以跟任意名称。例如:

<div id="user" data-user-id="12345" data-role="admin"></div>

在 JavaScript 中,可以通过 dataset 属性来访问这些数据:

const user = document.getElementById('user');
console.log(user.dataset.userId); // 输出 "12345"
console.log(user.dataset.role); // 输出 "admin"

data-* 属性的主要用途包括:

  • 存储私有数据:可以在 HTML 元素中存储一些与页面逻辑相关的数据,而不需要使用额外的 JavaScript 变量。
  • 增强可读性:通过 data-* 属性,可以在 HTML 中直接看到与元素相关的数据,提高代码的可读性。

5. HTML 中的 meta 标签有哪些常见用途?

答案:

meta 标签用于提供关于 HTML 文档的元数据,通常位于 <head> 标签中。常见的用途包括:

  • 字符编码声明:指定文档的字符编码,通常使用 UTF-8。
  <meta charset="UTF-8">
  • 页面描述:提供页面的简短描述,通常用于搜索引擎优化(SEO)。
  <meta name="description" content="这是一个关于 Web 前端开发的页面">
  • 关键词:指定与页面内容相关的关键词,用于 SEO。
  <meta name="keywords" content="HTML, CSS, JavaScript, 前端开发">
  • 视口设置:用于控制移动设备上的页面布局,通常用于响应式设计。
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • 作者信息:指定页面的作者。
  <meta name="author" content="John Doe">
  • 刷新和重定向:指定页面在一定时间后自动刷新或重定向到另一个 URL。
  <meta http-equiv="refresh" content="5;url=https://example.com">

6. HTML 中的 script 标签有哪些属性?

答案:

script 标签用于在 HTML 文档中嵌入或引用 JavaScript 代码。常见的属性包括:

  • src:指定外部 JavaScript 文件的 URL。
  <script src="script.js"></script>
  • type:指定脚本的 MIME 类型,通常为 text/javascript。在 HTML5 中,type 属性可以省略。
  <script type="text/javascript"></script>
  • async:指定脚本异步加载,即脚本的下载不会阻塞页面的渲染。脚本下载完成后立即执行。
  <script src="script.js" async></script>
  • defer:指定脚本延迟加载,即脚本的下载不会阻塞页面的渲染,但脚本会在文档解析完成后执行。
  <script src="script.js" defer></script>
  • crossorigin:指定脚本的跨域请求是否使用 CORS(跨域资源共享)。
  <script src="https://example.com/script.js" crossorigin="anonymous"></script>

7. HTML 中的 iframe 标签有什么作用?

答案:

iframe 标签用于在 HTML 页面中嵌入另一个 HTML 文档。它可以用于嵌入其他网页、视频、地图等内容。

iframe 的常见属性包括:

  • src:指定要嵌入的文档的 URL。
  <iframe src="https://example.com"></iframe>
  • widthheight:指定 iframe 的宽度和高度。
  <iframe src="https://example.com" width="600" height="400"></iframe>
  • frameborder:指定是否显示边框,通常设置为 0 表示不显示边框。
  <iframe src="https://example.com" frameborder="0"></iframe>
  • sandbox:指定 iframe 的安全限制,可以防止嵌入的文档执行某些操作,如脚本执行、表单提交等。
  <iframe src="https://example.com" sandbox="allow-scripts"></iframe>

iframe 的主要用途包括:

  • 嵌入第三方内容:如嵌入地图、视频、社交媒体插件等。
  • 创建独立的文档上下文:可以在页面中创建一个独立的文档上下文,避免与主页面冲突。

8. HTML 中的 form 标签有哪些常见属性?

答案:

form 标签用于创建 HTML 表单,用户可以通过表单输入数据并提交到服务器。常见的属性包括:

  • action:指定表单提交的 URL。
  <form action="/submit" method="post"></form>
  • method:指定表单提交的 HTTP 方法,通常为 GETPOST
  <form action="/submit" method="post"></form>
  • enctype:指定表单数据的编码类型,通常用于文件上传时设置为 multipart/form-data
  <form action="/upload" method="post" enctype="multipart/form-data"></form>
  • target:指定表单提交后响应的显示位置,如 _blank 表示在新窗口中打开。
  <form action="/submit" method="post" target="_blank"></form>
  • autocomplete:指定表单是否启用自动填充功能。
  <form action="/submit" method="post" autocomplete="off"></form>
  • novalidate:指定表单提交时不进行验证。
  <form action="/submit" method="post" novalidate></form>

9. HTML 中的 input 标签有哪些常见类型?

答案:

input 标签用于创建各种类型的输入控件。常见的类型包括:

  • text:单行文本输入框。
  <input type="text" name="username">
  • password:密码输入框,输入内容会被隐藏。
  <input type="password" name="password">
  • email:电子邮件输入框,浏览器会自动验证输入内容是否符合电子邮件格式。
  <input type="email" name="email">
  • number:数字输入框,可以设置最小值和最大值。
  <input type="number" name="age" min="0" max="100">
  • date:日期选择器。
  <input type="date" name="birthday">
  • checkbox:复选框,允许用户选择多个选项。
  <input type="checkbox" name="hobby" value="reading"> 阅读
  • radio:单选按钮,允许用户从多个选项中选择一个。
  <input type="radio" name="gender" value="male"> 男
  <input type="radio" name="gender" value="female"> 女
  • file:文件选择框,允许用户上传文件。
  <input type="file" name="file">
  • submit:提交按钮,用于提交表单。
  <input type="submit" value="提交">
  • reset:重置按钮,用于重置表单内容。
  <input type="reset" value="重置">

10. HTML 中的 label 标签有什么作用?

答案:

label 标签用于为表单控件提供标签,通常与 inputtextareaselect 等表单元素一起使用。label 标签的主要作用是提高表单的可访问性和用户体验。

label 标签的常见用法包括:

  • 通过 for 属性关联表单控件for 属性的值应与表单控件的 id 属性值相同。
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username">
  • 包裹表单控件label 标签可以直接包裹表单控件,此时不需要 for 属性。
  <label>
    用户名:
    <input type="text" name="username">
  </label>

label 标签的好处包括:

  • 提高可访问性:屏幕阅读器可以读取 label 标签的内容,帮助视障用户理解表单控件的用途。
  • 增强用户体验:点击 label 标签时,关联的表单控件会自动获得焦点,方便用户操作。

CSS

1. CSS 盒模型是什么?有哪些类型?

答案:

CSS 盒模型是用于描述 HTML 元素在页面中占据空间的一种模型。每个元素都被视为一个矩形盒子,盒子由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。

CSS 盒模型有两种类型:

  • 标准盒模型(content-box):元素的宽度和高度仅包括内容区域,不包括内边距、边框和外边距。这是默认的盒模型。
  box-sizing: content-box;
  • IE 盒模型(border-box):元素的宽度和高度包括内容区域、内边距和边框,但不包括外边距。这种盒模型在 IE 浏览器中使用。
  box-sizing: border-box;

2. CSS 中的选择器有哪些类型?

答案:

CSS 选择器用于选择要应用样式的 HTML 元素。常见的选择器类型包括:

  • 元素选择器:选择指定类型的 HTML 元素。
  p {
    color: red;
  }
  • 类选择器:选择具有指定类名的元素。
  .class-name {
    color: blue;
  }
  • ID 选择器:选择具有指定 ID 的元素。
  #id-name {
    color: green;
  }
  • 属性选择器:选择具有指定属性的元素。
  input[type="text"] {
    border: 1px solid #ccc;
  }
  • 伪类选择器:选择元素的特定状态,如 :hover:focus 等。
  a:hover {
    color: orange;
  }
  • 伪元素选择器:选择元素的特定部分,如 ::before::after 等。
  p::before {
    content: "前缀";
  }
  • 后代选择器:选择指定元素的后代元素。
  div p {
    color: purple;
  }
  • 子元素选择器:选择指定元素的直接子元素。
  div > p {
    color: pink;
  }
  • 相邻兄弟选择器:选择指定元素的下一个兄弟元素。
  h1 + p {
    color: brown;
  }
  • 通用选择器:选择所有元素。
  * {
    margin: 0;
    padding: 0;
  }

3. CSS 中的 position 属性有哪些值?它们的作用是什么?

答案:

position 属性用于指定元素的定位方式。常见的值包括:

  • static:默认值,元素按照正常的文档流进行定位。
  position: static;
  • relative:相对定位,元素相对于其正常位置进行定位。
  position: relative;
  top: 10px;
  left: 20px;
  • absolute:绝对定位,元素相对于最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则相对于初始包含块(通常是 <body>)进行定位。
  position: absolute;
  top: 50px;
  left: 100px;
  • fixed:固定定位,元素相对于浏览器窗口进行定位,即使页面滚动,元素的位置也不会改变。
  position: fixed;
  top: 0;
  left: 0;
  • sticky:粘性定位,元素在滚动到特定位置时会固定在屏幕上。
  position: sticky;
  top: 0;

4. CSS 中的 display 属性有哪些常见值?它们的作用是什么?

答案:

display 属性用于指定元素的显示方式。常见的值包括:

  • block:元素显示为块级元素,占据一整行。
  display: block;
  • inline:元素显示为行内元素,不会占据一整行,宽度和高度由内容决定。
  display: inline;
  • inline-block:元素显示为行内块级元素,不会占据一整行,但可以设置宽度和高度。
  display: inline-block;
  • none:元素不显示,且不占据空间。
  display: none;
  • flex:元素显示为弹性盒子,子元素可以按照弹性布局进行排列。
  display: flex;
  • grid:元素显示为网格容器,子元素可以按照网格布局进行排列。
  display: grid;

5. CSS 中的 float 属性有什么作用?

答案:

float 属性用于指定元素是否浮动以及浮动的方向。常见的值包括:

  • left:元素向左浮动。
  float: left;
  • right:元素向右浮动。
  float: right;
  • none:元素不浮动(默认值)。
  float: none;

float 属性的主要作用是实现文本环绕图片的效果,或者实现多列布局。需要注意的是,浮动元素会脱离正常的文档流,可能会导致父元素高度塌陷的问题,通常需要使用清除浮动(clearfix)来解决。

6. CSS 中的 clear 属性有什么作用?

答案:

clear 属性用于指定元素是否允许浮动元素在其旁边。常见的值包括:

  • left:元素不允许左侧有浮动元素。
  clear: left;
  • right:元素不允许右侧有浮动元素。
  clear: right;
  • both:元素不允许左右两侧有浮动元素。
  clear: both;
  • none:元素允许两侧有浮动元素(默认值)。
  clear: none;

`

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI