[TOC]
## 1、documen.write和 innerHTML的區別
> document.write只能重繪整個頁面
> innerHTML可以重繪頁面的一部分
## 2、簡述一下你對HTML語義化的理解 ?
~~~
語義化是指根據內容的類型,選擇合適的標簽(代碼語義化),即用正確的標簽做正確的事情; html語義化讓頁面的內容結構化,結構更清晰,有助于瀏覽器、搜索引擎解析對內容的抓取;
~~~
## 3、你對重繪、重排的理解?
1)首先網頁數次渲染生成時,這個可稱為重排;
2)修改DOM、樣式表、用戶事件或行為(鼠標懸停、頁面滾動、輸入框鍵入文字、改變窗口大小等等)這些都會導致頁面重新渲染,那么重新渲染,就需要重新生成布局和重新繪制節點,前者叫做"重排",后者"重繪";
3) 減少或集中對頁面的操作,即多次操作集中在一起執行;
4) 總之可以簡單總結為:重繪不一定會重排,但重排必然為會重繪。
## 4.瀏覽器是如何渲染頁面的?
渲染的流程如下:
1.解析HTML文件,創建DOM樹。
? ?自上而下,遇到任何樣式(link、style)與腳本(script)都會阻塞(外部樣式不阻塞后續外部腳本的加載)。
2.解析CSS。優先級:瀏覽器默認設置<用戶設置<外部樣式<內聯樣式<HTML中的style樣式;
3.將CSS與DOM合并,構建渲染樹(Render Tree)
4.布局和繪制,重繪(repaint)和重排(reflow)