面试必背系列-HTML

124 阅读3分钟

1. src和href的区别

src和href都是用来引用外部的资源,它们的区别如下:

  • src: 表示对资源的引用,它指向的内容会嵌入到当前标签所在的位置。常用在img、script等标签上。
  • href: 表示超文本引用,它指向一些网络资源,建立和当前元素或本文档的链接关系。 常用在a、link等标签上。

2. 对HTML语义化的理解

语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化) 语义化的优点如下:增强了可读性,结构更加清晰、有利于SEO

  • header(头部);
  • nav(导航);
  • footer(底部);
  • article(文章);
  • section(区段);
  • aside 侧边);

3. DOCTYPE(⽂档类型) 的作⽤

DOCTYPE是它的目的是告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS 代码甚⾄ JavaScript 脚本的解析。它必须声明在HTML⽂档的第⼀⾏。

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

  • CSS1Compat:标准模式(Strick mode) ,DOCTYPE声明的网页,默认模式。浏览器使用W3C的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面。
  • BackCompat:怪异模式(混杂模式)(Quick mode) ,通常发生在文档没有 DOCTYPE 或使用不正确的 DOCTYPE 声明时,浏览器使用自己的怪异模式解析渲染页面。在怪异模式中,页面以一种比较宽松的向后兼容的方式显示。

4. script标签中defer和async的区别

defer 和 async属性都是去异步加载外部的JS脚本文件,它们都不会阻塞页面的解析,其区别如下:

  • 执行顺序: 多个带async属性的标签,不能保证加载的顺序;多个带defer属性的标签,按照加载顺序执行;
  • 脚本是否并行执行:async属性,表示后续文档的加载和执行与js脚本的加载和执行是并行进行的,即异步执行;defer属性,js脚本需要等到文档所有元素解析完成之后才执行。

5. HTML5有哪些更新

总结: (1)新增语义化标签:nav、header、footer、aside、section、article (2)音频、视频标签:audio、video (3)数据存储:localStorage、sessionStorage (4)canvas、SVG、websocket(通信协议) (5)增强型表单:eamil,required、oninput (6)history API:go、forward (7)web worker

6. 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

  • 行内元素有:a b span img input select strong
  • 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4 h5 h6 p
  • 空元素有:<br><hr><img>

7. 说一下 web worker

web worker 是运行在后台的 js,独立于其他脚本,不会影响页面的性能。在 HTML 页面中,如果在执行脚本时,页面的状态是不可相应的,直到脚本执行完成后,页面才变成可相应,web worker通过 postMessage 将结果回传到主线程。这样在进行复杂操作的时候,就不会阻塞主线程了。

如何创建 web worker:

  1. 检测浏览器对于 web worker 的支持性
  2. 创建 web worker 文件(js,回传函数等)
  3. 创建 web worker 对象