爲了準備春招面試,對本身的知識點進行一個總結積累,第一篇是關於HTML方面的知識點,後續若是碰見新題會進行繼續的補充javascript
HTML語義化簡單來講就是,段落使用<p></p>
,側邊欄用<aside></aside>
,主要內容使用<main></main>
。html
告訴瀏覽器使用哪一個版本的HTML規範來渲染文檔。DOCTYPE不存在或形式不正確會致使HTML文檔以混雜模式呈現。java
HTML5不基於SGML,因此不須要引用DTD(DTD 文檔類型定義)。在HTML5中<!DOCTYPE>只有一種web
<!DOCTYPE html>
在HTML4.01中,<!DOCTYPE>聲明引用DTD,由於HTML4.01基於SGML。DTD規定了標記語言的規則,這樣瀏覽器才能正確的呈現內容。在HTML4.01中有三種<!DOCTYPE>聲明。面試
a
、span
、img
、input
、select
div
、ul
、ol
、li
、p
控制頁面在移動端不要縮小顯示。canvas
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
新增長了圖像、位置、存儲、多任務等功能。瀏覽器
canvas
,用於媒介回放的video
和audio
元素等localStorage
長期存儲數據,瀏覽器關閉後數據不丟失;sessionStorage
的數據在瀏覽器關閉後自動刪除figure
、footer
、header
、aside
、time
等標籤Geolocation
calendar
date
time
email
url
search
Web Worker
(web worker是運行在後臺的 JavaScript,獨立於其餘腳本,不會影響頁面的性能。您能夠繼續作任何願意作的事情:點擊、選取內容等等,而此時 web worker 在後臺運行) Web Socket
drag
、drop
主要分紅兩部分:渲染引擎(Layout Engine或Rendering Engine)和JS引擎。session
渲染引擎:負責取得網頁的內容(HTML、XML、圖像等等)、整理訊息(例如加入CSS等),以及計算網頁的顯示方式,而後會輸出至顯示器或打印機。瀏覽器的內核的不一樣對於網頁的語法解釋會有不一樣,因此渲染的效果也不相同。
JS引擎:解析和執行javascript來實現網頁的動態效果。異步
最開始渲染引擎和JS引擎並無區分的很明確,後來JS引擎愈來愈獨立,內核就傾向於只指渲染引擎。async
Trident
:IE內核Gecko
:Firefox內核Presto
:Opera前內核(已廢棄)Webkit
:Safari內核,Chrome內核原型,開源Blink
:由Google和Opera Software開發,Chrome(28及日後版本)、Opera(15及日後版本)和Yandex瀏覽器中使用沒有defer
或async
,瀏覽器在遇到script
標籤後,會當即加載並執行標籤中的腳本,「當即」指的是在渲染該script
標籤之下的文檔元素以前,也就是說不等待後續載入的文檔元素,讀到就加載並執行。
有defer
,加載後續文檔元素的過程將和script.js
的加載並行進行(異步),可是script.js
的執行要在全部元素解析完成以後,DOMContentLoaded
事件觸發以前完成。
有async
,加載和渲染後續文檔元素的過程將和script.js
的加載並行進行(異步),但當script.js
加載完後會當即執行,即中止加載和渲染後續文檔元素,執行script.js
。
如圖所示,但須要注意如下幾點
defer
,此圖未盡之處在於它是按照加載順序執行腳本的,這一點要善加利用async
,它的腳本加載順序是亂序的,誰先加載完執行誰