2019最新前端面試寶典

###前端開發面試知識點大綱:javascript

##HTML&CSS:css

對Web標準的理解、瀏覽器內核差別、兼容性、hack、CSS基本功:佈局、盒子模型、選擇器優先級及使用、HTML五、CSS三、移動端適應 html

JavaScript:前端

數據類型、面向對象、繼承、閉包、插件、做用域、跨域、原型鏈、模塊化、自定義事件、內存泄漏、事件機制、異步裝載回調、模板引擎、Nodejs、JSON、ajax等。vue

其餘:html5

HTTP、安全、正則、優化、重構、響應式、移動端、團隊協做、可維護、SEO、UED、架構、職業生涯 做爲一名前端工程師,不管工做年頭長短都應該必須掌握的知識點:

  • 一、DOM結構 —— 兩個節點之間可能存在哪些關係以及如何在節點之間任意移動。
  • 二、DOM操做 ——如何添加、移除、移動、複製、建立和查找節點等。
  • 三、事件 —— 如何使用事件,以及IE和標準DOM事件模型之間存在的差異。
  • 四、XMLHttpRequest —— 這是什麼、怎樣完整地執行一次GET請求、怎樣檢測錯誤。
  • 五、嚴格模式與混雜模式 —— 如何觸發這兩種模式,區分它們有何意義。
  • 六、盒模型 —— 外邊距、內邊距和邊框之間的關係,及IE8如下版本的瀏覽器中的盒模型
  • 七、塊級元素與行內元素 —— 怎麼用CSS控制它們、以及如何合理的使用它們
  • 八、浮動元素——怎麼使用它們、它們有什麼問題以及怎麼解決這些問題。
  • 九、HTML與XHTML——兩者有什麼區別,你以爲應該使用哪個並說出理由。
  • 十、JSON —— 做用、用途、設計結構。

HTMLjava

Doctype 做用? 嚴格模式與混雜模式如何區分?它們有何意義?node

(1)、<!DOCTYPE> 聲明位於文檔中的最前面,處於 標籤以前。告知瀏覽器的解析器,用什麼文檔類型 規範來解析這個文檔。 //在此我向你們推薦一個前端全棧開發交流圈:619586920 突破技術瓶頸,提高思惟能力 (2)、嚴格模式的排版和 JS 運做模式是 以該瀏覽器支持的最高標準運行。 (3)、在混雜模式中,頁面以寬鬆的向後兼容的方式顯示。模擬老式瀏覽器的行爲以防止站點沒法工做。 (4)、DOCTYPE不存在或格式不正確會致使文檔以混雜模式呈現。jquery

行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?webpack

(1)CSS規範規定,每一個元素都有display屬性,肯定該元素的類型,每一個元素都有默認的display值, 好比div默認display屬性值爲「block」,成爲「塊級」元素;塊級元素獨佔一行。 span默認display屬性值爲「inline」,是「行內」元素。 行內元素處於同一行。 (2)行內元素有:a b span img input select strong(強調的語氣) 塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4 h5 h6 p 等 //在此我向你們推薦一個前端全棧開發交流圈:619586920 突破技術瓶頸,提高思惟能力 (3)知名的空元素:

<br> <hr> <img> <input> <link> <meta>
複製代碼

不爲人知的是:

<area> <base> <col> <command> <embed> <keygen> <param> <source>
<track> <wbr>
複製代碼

link 和@import 的區別是?

(1)link屬於XHTML標籤,而@import是CSS提供的;
(2)頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載;
(3)import只在IE5以上才能識別,而link是XHTML標籤,無兼容問題;
(4)link方式的樣式的權重 高於@import的權重.

複製代碼

瀏覽器的內核分別是什麼?

IE瀏覽器的內核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera內核原爲Presto,現爲Blink;

常見兼容性問題?

png24位的圖片在iE6瀏覽器上出現背景,解決方案是作成png8. 瀏覽器默認的margin和padding不一樣。解決方案是加一個全局的 *{margin:0;padding:0;} 來統一。 IE6雙邊距bug:塊屬性標籤float後,又有橫行的margin狀況下,在ie6顯示margin比設置的大。 浮動ie產生的雙倍距離 #box{ float:left; width:10px; margin:0 0 0 100px;} 這種狀況之下IE會產生20px的距離,解決方案是在float的標籤樣式控制中加入 ——_display:inline;將其轉化爲行內屬性。( _ 這個符號只有ie6會識別) 漸進識別的方式,從整體中逐漸排除局部。 首先,巧妙的使用「\9」這一標記,將IE遊覽器從全部狀況中分離出來。 接着,再次使用「+」將IE8和IE七、IE6分離開來,這樣IE8已經獨立識別。

##css

1 .bb{
2    background-color:#f1ee18; /*全部識別*/
3   .background-color:#00deff\9; /*IE六、七、8識別*/
5   +background-color:#a200ff; /*IE六、7識別*/
6   _background-color:#1e0bd1; /*IE6識別*/
7   }
複製代碼

1.IE下,可使用獲取常規屬性的方法來獲取自定義屬性, 也可使用getAttribute()獲取自定義屬性; Firefox下,只能使用getAttribute()獲取自定義屬性. 解決方法:統一經過getAttribute()獲取自定義屬性.

2.IE下,event對象有x,y屬性,可是沒有pageX,pageY屬性; Firefox下,event對象有pageX,pageY屬性,可是沒有x,y屬性. 解決方法:(條件註釋)缺點是在IE瀏覽器下可能會增長額外的HTTP請求數。

3.Chrome 中文界面下默認會將小於 12px 的文本強制按照 12px 顯示, 可經過加入 CSS 屬性 -webkit-text-size-adjust: none; 解決.

4.超連接訪問事後hover樣式就不出現了 被點擊訪問過的超連接樣式不在具備hover和active了, 解決方法是改變CSS屬性的排列順序: L-V-H-A : a:link { } ,a:visited { } ,a:hover { } ,a:active { } ; HTML5有哪些新特性、移除了那些元素?如何處理html5新標籤的瀏覽器兼容問題?如何區分 HTML 和 Html5?

1.HTML5 如今已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增長。

2.繪畫 canvas

用於媒介回放的 video 和 audio 元素 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失; sessionStorage 的數據在瀏覽器關閉後自動刪除. 語意化更好的內容元素,好比 article、footer、header、nav、section 表單控件,calendar、date、time、email、url、search 新的技術webworker, websocket, Geolocation

3.移除的元素

純表現的元素:basefont,big,center,font, s,strike,tt,u; 對可用性產生負面影響的元素:frame,frameset,noframes;

支持HTML5新標籤:

IE8/IE7/IE6支持經過document.createElement方法產生的標籤, 能夠利用這一特性讓這些瀏覽器支持HTML5新標籤, 瀏覽器支持新標籤後,還須要添加標籤默認的樣式: 固然最好的方式是直接使用成熟的框架、使用最多的是html5shiv框架

如何區分: DOCTYPE聲明新增的結構元素\功能元素 語義化的理解? 1.用正確的標籤作正確的事情! 2.html語義化就是讓頁面的內容結構化,便於對瀏覽器、搜索引擎解析; 3.在沒有樣式CCS狀況下也以一種文檔格式顯示,而且是容易閱讀的。 4.搜索引擎的爬蟲依賴於標記來肯定上下文和各個關鍵字的權重,利於 SEO。 5.使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。 HTML5的離線儲存? localStorage 長期存儲數據,瀏覽器關閉後數據不丟失; sessionStorage 數據在瀏覽器關閉後自動刪除。 HTML5中新增長的不少標籤(如:

相關文章
相關標籤/搜索