分享前端知識點,從細微處拿起,零碎時間學習,通關前端面試
1. 你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什麼?
IE: trident內核
Firefox:gecko內核
Safari:webkit內核
Chrome:Blink(基於webkit)
Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核
2. 每個HTML文件裏開頭都有個很重要的東西,Doctype,知道這是幹什麼的嗎?
聲明位於文檔中的最前面的位置,處於 標籤之前。此標籤可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範。(重點:告訴瀏覽器按照何種規範解析頁面3. div+css的佈局較table佈局有什麼優點?
改版的時候更方便 只要改css文件。
頁面加載速度更快、結構化清晰、頁面顯示簡潔。
表現與結構相分離。
易於優化(seo)搜索引擎更友好,排名更容易靠前。
4. 你能描述一下漸進增強和優雅降級之間的不同嗎?
漸進增強 progressive enhancement:針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。
優雅降級 graceful degradation:一開始就構建完整的功能,然後再針對低版本瀏覽器進行兼容。
區別:優雅降級是從複雜的現狀開始,並試圖減少用戶體驗的供給,而漸進增強則是從一個非常基礎的,能夠起作用的版本開始,並不斷擴充,以適應未來環境的需要。降級(功能衰減)意味着往回看;而漸進增強則意味着朝前看,同時保證其根基處於安全地帶。
5. 爲什麼利用多個域名來存儲網站資源會更有效?
CDN緩存更方便
突破瀏覽器併發限制
節約cookie帶寬
節約主域名的連接數,優化頁面響應速度
防止不必要的安全問題
6. 請談一下你對網頁標準和標準制定機構重要性的理解。
網頁標準和標準制定機構都是爲了能讓web發展的更‘健康’,開發者遵循統一的標準,降低開發難度,開發成本,SEO也會更好做,也不會因爲濫用代碼導致各種BUG、安全問題,最終提高網站易用性。
7. 請描述一下cookies,sessionStorage和localStorage的區別?
sessionStorage用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷燬。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。
web storage和cookie的區別
Web Storage的概念和cookie相似,區別是它是爲了更大容量存儲設計的。Cookie的大小是受限的,並且每次你請求一個新的頁面的時候Cookie都會被髮送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。
除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作爲HTTP規範的一部分而存在 ,而Web Storage僅僅是爲了在本地“存儲”數據而生。
8. 簡述一下src與href的區別
- src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標籤所在位置;在請求src資源時會將其指向的資源下載並應用到文檔內,例如js腳本,img圖片和frame等元素。
<script src =”js.js”></script>
當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執行完畢,圖片和框架等元素也如此,類似於將所指向資源嵌入當前標籤內。這也是爲什麼將js腳本放在底部而不是頭部。
- href是Hypertext Reference的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,如果我們在文檔中添加
<link href=”common.css” rel=”stylesheet”/>
那麼瀏覽器會識別該文檔爲css文件,就會並行下載資源並且不會停止對當前文檔的處理。這也是爲什麼建議使用link方式來加載css,而不是使用@import方式。
9. 知道什麼是微格式嗎?談談理解。在前端構建中應該考慮微格式嗎?
微格式(Microformats)是一種讓機器可讀的語義化XHTML詞彙的集合,是結構化數據的開放標準。是爲特殊應用而制定的特殊格式。
優點:將智能數據添加到網頁上,讓網站內容在搜索引擎結果界面可以顯示額外的提示。(應用範例:豆瓣)
10. 在css/js代碼上線之後開發人員經常會優化性能,從用戶刷新網頁開始,一次js請求一般情況下有哪些地方會有緩存處理?
dns緩存
cdn緩存
瀏覽器緩存
服務器緩存