JS面试1、文档模式以及DOCTYPE

屏幕快照 2019-10-13 下午8.32.13.png
面试中也常会问到关于文档模式的问题,那么咱们就来了解一下文档模式究竟是什么呢,以及它影响着什么呢? 文档模式的概念是由IE提出的,最初有两种文档模式:混杂模式和标准模式。两种模式主要会影响CSS内容的呈现,但在某些状况下也会影响到Javascript的解释执行。IE先提出后,其余浏览器纷纷效仿,所以浏览器都有这两种文档模式,决定着网页将会以什么样的行为准则渲染。

<!DOCTYPE html>
复制代码

以上代码应该都很熟悉,咱们常常在本身的html文件的开头加上这行代码,这叫做文档类型声明。这行代码相当重要,由于若是在文档的开头没有文档类型声明,则全部浏览器都会默认开启混杂模式,但不一样浏览器在这种模式下的行为差别很是大,若是不使用某些hack技术,跨浏览器的行为根本就没有什么一致性可言。 所以在HTML5中只要加上了上面的那一行代码,就开启了标准模式。此时浏览器就只能老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在全部浏览器里显示的就是一个样子。html

##扩展 DOCTYPE:一种标准通用标记语言的文档类型声明,做用就是告诉标准通用标记语言解析器,他应该用什么样的文档类型定义(DTD)来解析文档,也就是咱们上面说的声明文档的解析类型,避免浏览器的怪异模式(按照浏览器本身的方式来解析执行代码,即混杂模式)。 #####原理面试

有一个属性叫document.compatMode它有两个值:浏览器

  • BackCompat:怪异模式,浏览器是用本身的方式解析渲染页面;
  • CSSCompat:标准模式,浏览器使用W3C标准解析渲染页面;

document.compatMode属性会被浏览器识别并使用,可是若是你的页面里没有DOCTYPE声明,那么compatMode默认为BackCompat,浏览器就会按照本身的方式解析渲染页面,即混杂模式。bash

关于名称,由于看到有不少地方说法不一样,我理解的是这样的: 标准模式 === 严格模式:指浏览器按照 W3C 标准解析代码。 混杂模式 === 怪异模式:指浏览器用本身的方式解析代码。spa

相关文章
相关标签/搜索