經典面試題
33.HTML5 為什么只需要寫 <!DOCTYPE HTML>?
- HTML5 不基于 SGML,因此不需要對DTD進行引用,但是需要doctype來規范瀏覽器的行為(讓瀏覽器按照它們應該的方式來運行);
- 而HTML4.01基于SGML,所以需要對DTD進行引用,才能告知瀏覽器文檔所使用的文檔類型。
名詞解釋 - SGML: 標準通用標記語言。規定了在文檔中嵌入描述標記的標準格式,指定了描述文檔結構的標準方法。XML和HTML都由此引出。
- DTD:文檔類型定義。
- HTML4.1有三種<!DOCTYPE>聲明,分別是嚴格模式、過渡模式和框架模式。
- 嚴格模式包含有HTML元素和屬性,但不包括展示性的和棄用的元素,不允許框架集。
- 過渡模式包含所有HTML元素和屬性,包括展示性和棄用的元素。不允許框架集。
- 框架模式等同于過渡模式,但允許框架集內容。
- HTML5只有一種格式,就是<!DOCTYPE HTML>。
34.頁面導入樣式時,使用link和@import有什么區別?
- link是XHTML標簽,除了加載CSS外,還可以定義RSS等其他事務;@import屬于CSS范疇,只能加載CSS。
- link引用CSS時,在頁面載入時同時加載;@import需要頁面網頁完全載入以后加載。
- link是XHTML標簽,無兼容問題;@import是在CSS2.1提出的,低版本的瀏覽器不支持。
- link支持使用Javascript控制DOM去改變樣式;而@import不支持。
35.介紹一下你對瀏覽器內核的理解?
- 主要分成兩部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
- 渲染引擎:負責取得網頁的內容(HTML、XML、圖像等等)、整理訊息(例如加入CSS等),以及計算網頁的顯示方式,然后會輸出至顯示器或打印機。瀏覽器的內核的不同對于網頁的語法解釋會有不同,所以渲染的效果也不相同。所有網頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網絡內容的應用程序都需要內核。
- JS引擎:解析和執行javascript來實現網頁的動態效果。最開始渲染引擎和JS引擎并沒有區分的很明確,后來JS引擎越來越獨立,內核就傾向于只指渲染引擎。
36.IE和DOM事件流的區別?
- IE->事件冒泡流。即事件開始時由最具體的元素(文檔中嵌套層次最深的那個節點)接收,然后逐級向上傳播到較為不具體的節點(文檔)。
- Netscape->事件捕獲流。思想是不太具體的節點應該更早接收到事件,而最具體的節點應該最后接收到事件。其用意在于事件到達預定目標之前捕獲它。
- “DOM2級事件”規定的事件流包括三個階段:事件捕獲階段、處于目標階段和事件冒泡階段。
思考題
17.前端安全方面有沒有了解?CSRF 如何攻防?
- 通過 referer、token 或者 驗證碼 來檢測用戶提交。
- 盡量不要在頁面的鏈接中暴露用戶隱私信息。
- 對于用戶修改刪除等操作最好都使用post 操作 。
- 避免全站通用的cookie,嚴格設置cookie的域。
傳送門: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
18.說說你對 SVG 理解?
傳送門: http://blog.csdn.net/qq522935502/article/details/45073897