前端面试题汇总之HTML篇(含答案)

2024-07-24
23768 分钟
...
什么是 DOCTYPE有何作用
对HTML语义化的理解
title与h1的区别b与strong的区别i与em的区别
页面导入样式时使用 link @import 有什么区别
H5有哪些新元素和新特性
cookiesessionStorage localStorage 的区别和用途
DOM查询以及操作

1、什么是 DOCTYPE(⽂档类型),有何作用

(1) 解释(是什么)

DOCTYPE是是HTML5的文档声明,一种标准通用标记语言文档类型声明

必须声明在HTML⽂档的第⼀⾏,比如我们常见的一般是以下这样子

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
    
</body>
</html>

(2)DOCTYPE的作用包括:

  1. 告知浏览器使用哪个HTML版本:定义和声明HTML文档的类型和版本,告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档,例如,<!DOCTYPE html> 声明表示文档是基于HTML5的。不同的HTML版本可能具有不同的语法和功能支持,因此DOCTYPE有助于浏览器正确地解析和渲染页面,就类似我们解析语言时候的UTF-8 语言。

  2. 确保文档以标准模式呈现:没有DOCTYPE声明的情况下,一些旧版本的浏览器会进入“怪异模式”或“兼容模式”,可能导致页面的渲染和布局问题。DOCTYPE可以确保确保浏览器按照标准规范解析和渲染页面,从而提升页面的可访问性和一致性。以获得一致的展示效果。不同的渲染模式也会影响浏览器对 CSS 和 JavaScript 脚本的解析。

  3. 提供文档验证:DOCTYPE声明是HTML文档的一部分,也用于验证文档的合法性。在HTML文档中正确声明DOCTYPE有助于确保页面符合W3C(World Wide Web Consortium)的标准。

浏览器渲染页面的两种模式

渲染模式可通过document.compatMode获取(例如:语雀官网的文档类型是CSS1Compat)):

  • CSS1Compat:标准模式(Strick mode),默认采用这种模式,浏览器使用W3C的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面。
  • BackCompat:怪异模式(混杂模式)(Quick mode) ,浏览器使用自己的怪异模式解析渲染页面。这种模式中,页面以一种比较宽松的向后兼容的方式显示。

2、对HTML语义化的理解

语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化)

通俗来讲就是用正确的标签做正确的事情,依据内容结构选择合适的标签元素然后去生成代码。

🧲 语义化的优点如下:

  • 对机器友好,带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息,有利于SEO。除此之外,语义类还支持读屏软件,根据文章可以自动生成目录;
  • 对开发者友好,使用语义类标签增强了可读性,结构更加清晰,开发者能清晰的看出网页的结构,便于团队的开发与维护。

常见的语义化标签有:

<header></header>  头部

<nav></nav>  导航栏

<section></section>  区块有语义化的div

<main></main>  主要区域

<article></article>  主要内容

<aside></aside>  侧边栏

<footer></footer>  底部

这里我们可以尝试写一些语义化标签,然后对于语义化标签预览一下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <header>
        <div>头部</div>
    </header>
    <nav>
        <div>导航栏</div>
    </nav>
    <section>
        <div>区块(有语义化的div)</div>
    </section>
    <main>
        <div>主要区域</div>
    </main>
    <article>
        <div>主要内容</div>
    </article>
    <aside>
        <div>侧边栏</div>
    </aside>
    <footer>
        <div>
            底部
        </div>
    </footer>
    <script>
    </script>
</body>
</html>

最后看一下我们的结果!

3、title与h1的区别、b与strong的区别、i与em的区别

title属性没有明确意义只表示是个标题,H1则表示层次明确的标题,对页面信息的抓取也有很大的影响

strong是标明重点内容,有语气加强的含义,使用阅读设备阅读网络时:会重读,而是展示强调内容

i内容展示为斜体,em表示强调的文本

link 属于HTML标签,除了加载CSS外,还能用于定 RSS等;@import 只能用于加载CSS

页面加载的时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载

@import 只在 IE5 以上才能被识别,而 link 是HTML标签,无兼容问题

5、H5有哪些新元素和新特性

h5新增的新元素和新特性有:

新元素:

1.  **<header> :定义文档或节的页眉。
1.  **<footer>** :定义文档或节的页脚。
1.  **<nav>** :定义导航链接的部分。
1.  **<article>** :定义页面中独立的内容区域,如博客文章、新闻故事等。
1.  **<section>** :定义文档中的节(section),如章节、页眉、页脚或文档中的其他部分。
1.  **<aside>** :定义页面内容之外的内容,通常表示侧边栏或相关内容。
1.  **<main>** :定义文档的主要内容区域。
1.  **<figure>** 和 **<figcaption>** :<figure>用于包裹一组相关的元素,如图像和其标题;<figcaption>用于定义<figure>元素的标题。

新特性:

1.  **多媒体支持**新增了<audio><video>元素使得在网页上嵌入音频和视频内容更为简便
1.  **画布Canvas**通过<canvas>元素可以使用JavaScript来绘制图形动画等复杂的图形和视觉效果
1.  **本地存储**引入了localStorage和sessionStorage用于在客户端存储数据使得网页可以更快速地访问本地存储的数据
1.  **表单控件**新增了多种新的表单输入类型如日期时间邮箱等还包括输入验证和自动完成功能的增强
1.  **地理位置**通过Geolocation API允许网页应用获取用户的地理位置信息
1.  **Web Workers**允许在后台运行脚本以提高多线程处理能力从而改善网页性能
1.  **WebSocket**提供了一种在单个 TCP 连接上进行全双工通信的协议使得实时数据传输更为高效
1.  **SVG** **MathML**HTML5原生支持了SVG可缩放矢量图形和MathML数学标记语言),使得网页可以更容易地集成复杂的图形和数学公式

6、cookie、sessionStorage 和 localStorage 的区别和用途

cookie、sessionStorage和localStorage 三种客户端存储选项的主要区别和用途

特性CookiesessionStoragelocalStorage
存储容量4KB5MB5MB
存储位置存储在客户端和服务器之间,会随着每个HTTP请求发送到服务器仅在当前会话中有效,在页面会话结束后清除永久存储,除非被显式清除或者网站清除
数据传输每次HTTP请求时都会发送到服务器不会发送到服务器不会发送到服务器
过期时间可设置过期时间仅在当前会话有效,关闭标签页或浏览器后清除永久有效,除非被显式删除
访问权限可以通过设置cookie的路径和域进行访问控制仅在设置了相同协议、相同主机和相同端口的页面之间共享同源策略:只允许同源页面访问
用途跟踪会话状态、个性化设置等临时存储会话级别的数据永久存储的数据
APIDocument.cookiesessionStoragelocalStorage
安全性可设置为HttpOnly,防止被JavaScript访问相对较高,因为数据仅存储在客户端相对较高,因为数据仅存储在客户端

7、DOM查询以及操作

方法描述返回类型示例
getElementById根据元素 ID 获取单个元素Elementdocument.getElementById('myId')
getElementsByClassName根据类名获取一组元素HTMLCollectiondocument.getElementsByClassName('myClass')
getElementsByTagName根据标签名获取一组元素HTMLCollectiondocument.getElementsByTagName('div')
querySelector使用 CSS 选择器获取单个元素Elementdocument.querySelector('.myClass')
querySelectorAll使用 CSS 选择器获取所有匹配元素NodeListdocument.querySelectorAll('div')
getElementByName根据 name 属性获取一组元素(通常用于表单)NodeListdocument.getElementsByName('myName')
parentElement获取元素的父元素Elementelement.parentElement
children获取元素的所有子元素HTMLCollectionelement.children
nextSibling获取元素的下一个兄弟节点Nodeelement.nextSibling
previousSibling获取元素的前一个兄弟节点Nodeelement.previousSibling
parentNode获取元素的父节点Nodeelement.parentNode

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
nuxt2025-10-22
Nuxt SSR 与 Next.js SSR
🧭 引言 在现代前端生态中, Nuxt(Vue) 与 Next.js(React) 是最成熟的两大全栈框架。 它们都具备 SSR(Server Side Rendering) 能力,但实现原理与运行机制差异巨大。 如果你在使用 Nuxt 构建 SSR 项目,却发现“路由跳转后不再 SSR”, 而在 Next.js 中同样操作却会重新发起服务端渲染——这不是 bug,而是 理念差异 。 本文将详细对比这两种框架的 SSR 行为,帮助你彻...
学习面试
vue2025-10-22
shallowRef 与 ref 的区别、场景与坑位
结论先行: 会 深度 地把你放进去的对象转成响应式(递归代理),因此"对象内部的改动"也会触发视图更新。 只在 顶层 做依赖追踪: 更换 才触发更新 ;若你只是"在原对象上改属性",不会触发,除非手动 。 1\. 快速对比 维度 追踪粒度 深度(递归) 仅顶层 对象内部属性变更 会触发更新 不会 触发(除非 或重新赋值) 性能 有递归 & 依赖跟踪开销 更轻量,适合大对象/第三方实例 适用对象 普通标量、普通对象、数组 第三方实例(图表...
学习面试
vue2025-10-20
Vue 3 中的 setup执行时机与异步逻辑详解
Vue 3 中的 执行时机与异步逻辑详解 本文详细介绍 Vue 3 组合式 API 的核心函数 :它在组件生命周期中的执行时机、异步行为( 的影响)、常见用法和最佳实践。 一、 的执行时机 是 Vue 3 组件实例创建后、渲染前执行的函数。 它相当于 Vue 2 中的 和 的合体。 执行流程: 也就是说: 所有响应式数据( 、 、 )都在这里定义; 所有生命周期钩子( 、 等)都在这里注册; 模板渲染会等待 执行完成(或异步返回的 Pr...
学习面试
八股文2025-10-13
cookie跨域介绍
Cookie 跨域问题详解 在 Web 开发中, Cookie 是最常见的客户端存储机制之一,用于记录用户登录状态、偏好设置、会话信息等。然而,当涉及到 跨域请求 时,Cookie 的行为往往变得复杂,尤其在现代浏览器的安全策略下,跨域 Cookie 的传递和写入都有严格的限制。 本文将从基础概念开始,逐步讲解 Cookie 的跨域机制、SameSite 属性、CORS 配置及常见问题解决方案。 一、Cookie 的基础概念 Cooki...
学习面试
八股文2025-10-09
JavaScript 闭包详解
JavaScript 闭包(Closure)详解 一、什么是闭包 闭包(Closure) 是 JavaScript 中一个非常核心且常被问到的概念。简单来说: 闭包是一个函数,它可以“记住”并访问其定义时所在的词法作用域,即使这个函数在其作用域之外被调用。 换句话说,当一个函数“嵌套”在另一个函数中,并且 内部函数引用了外部函数的变量 时,就形成了闭包。 示例: 虽然 已经执行完毕,但 依然可以访问 中的 。这就是闭包。 二、闭包的形成...
学习面试
vue2025-10-08
vue中ref与reactive
Vue 3 的 与 :区别、实现,以及为什么更推荐 1\. 一句话结论 :适合 原始类型 或 独立、细粒度 的状态单元;类型推断明确、解构安全、追踪粒度更小, 默认首选 。 :适合管理 对象/集合 这类结构化状态;但 解构会丢失响应性 , 默认 非深度 ,需要正确的使用姿势配合。 2\. 用法与语义差异 2.1 基本示例 2.2 模板中的解包(unwrapping) 在 模板 里, 会 自动解包 ,可直接写 ,不必 。 在响应式对象中...
学习面试

评论

请登录后发表评论

去登录
加载评论中...

目录