1.瀏覽器渲染頁面的流程css
步驟:1)解析HTML文件,構建DOM Treehtml
2)解析CSS,構建CSSOM Tree(css規則樹)前端
3)將DOM Tree和CSSOM合併,構建Render Tree(渲染樹)ajax
4)reflow(重排):根據Render tree 進行節點信息計算(layout)數據庫
5)repaint(重繪):根據計算好的信息繪製整個頁面json
理論上,每一次的dom更改或者css集合屬性更改,都會引發一次瀏覽器的重排/重繪過程,而若是是css的非幾何屬性更改,則只會引發重繪過程,因此重排必定引發重繪,重繪不必定引發重排後端
由於有時JS也參與DOM Tree的構建,於是咱們會先執行js再開始構建渲染樹,JS腳本阻塞Render tree的構建,即阻塞了頁面的渲染api
2.企業項目中爲何要使用NodeJS?瀏覽器
Node.JS適合如下的情景緩存
1)實時性應用,好比在線多人協做工具,網頁聊天應用
2)以I/O爲主的高併發應用,好比爲客戶端提供API,讀取數據庫
3)流失應用,好比客戶常常上傳文件
4)先後端分離
3.AMD和CMD的區別
AMD 依賴前置
CMD 依賴就近
4.當輸入www.baidu.com後會發生哪些事情?
1)輸入網址 按下回車 ----DNS解析
2)找到相對應的服務器
3)TCP的三次握手
4)找到資源庫,獲取相對應的數據
5)解析數據
html css js img--TCP四次揮手
6)返回客戶端頁面
5.前端渲染和後端渲染的區別和優缺點?
首先,介紹一下 SPA、SEO、SSR 三者的區別
6.淺談堆和棧的理解
js變量存儲有棧存儲和堆存儲,基本數據類型的變量存儲在棧中,引用數據類型的變量存儲在堆中,引用類型數據的地址也存在棧中
當訪問基礎類型的變量時,直接從棧中取值。當訪問引用類型變量時,先從棧中讀取地址,再根據地址到堆中取出數據
7.js的數據類型分爲哪幾類
基礎數據類型:== !=- *= /= -=%=
強制類型轉換:Number parseInt();取整轉換parseFloat()
8.undefined和null區別
null是一個表示"無"的對象,轉爲數值爲0
undefined:是一個表示"無"的原始值,轉爲數值時爲NaN
undefined:
(1)變量被聲明瞭,但沒有賦值時,就等於undefined
(2)調用函數時,應該提供的參數沒有提供,該參數等於undefined
(3)對象沒有賦值的屬性,該屬性的值爲undefined
(4)函數沒有返回值時,默認返回undefined
null:
(1)做爲函數的參數,表示該函數的參數不是對象
(2)做爲對象原型鏈的終點