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

相關文章
相關標籤/搜索