前端面試資料總結——附上大量優質資料鏈接

介紹

3,4月份暑期實習招聘~準備了許久,看了網上不少的總結帖子,準備過程中,學習到了許多。
看過一句話~
技術水平漲的最快的有兩個階段,一個面試前幾個月,一個是入職後幾個月~想想還是很有道理的。
拿到offer了~把自己複習時做的一些總結,給大家分享一下,希望能夠對大家有些幫助~

CSS部分

常問問題:
1. 兩種盒模型
2. 選擇器優先級計算
3. 有哪些僞類
4. 純css實現對話框帶上小三角形
5. 輪播圖 js css
6. 媒體查詢
7. 清楚浮動方式
8. 完全置中

JavaScript部分

  1. 什麼是閉包?
    閉包是指有權訪問另一個函數作用域重點變量的函數。創建閉包的常見方式,就是在一個函數內部創建另外一
    個函數。因爲內部匿名函數的作用域鏈(一個棧結構)指向2:全局變量對象,1:包含函數變量對象,0:自己
    的變量對象。所以雖然隨着包含函數的執行結束,包含函數的作用域鏈銷燬了,但是因爲任然有函數的作用域
    鏈指向包含函數的變量對象,所以不會觸發回收機制。
  2. JS如何實現類,繼承?
    通過prototype,Javascript 解析引擎在讀取一個Object的屬性的值時,會沿着prototype向上尋找,
    如果最終沒有找到,則該屬性值爲Undefined; 如果最終找到該屬性的值,則返回結果。與這個過程不同的是,
    當javascript解析引擎執行“給一個Object的某個屬性賦值”的時候,如果當前Object存在該屬性,則改寫該屬性的值,
    如果當前的Object本身並不存在該屬性,則賦值該屬性的值。
  3. 什麼是冒泡和捕獲?
    事件流描述的是從頁面中接收事件的順序。IE的事件流是事件冒泡流,Netscape的事件流是事件捕獲流。
    事件冒泡流:嵌套最深的結點最先接收事件。
    事件捕獲流:document對象最先接收事件。
  4. JS有哪些數據類型?
    boolean,null,Number,string,Undefined這5個基本數據類型,另外有一個複雜數據類型object(本質上由一組無序的名值對組成)
  5. Null和Undefined的區別?
    聲明但未加初始化的則爲Undefined,而null則表示一個空對象指針。但是兩者用==返回爲true
  6. isNaN()的作用?
    isNaN() 函數通常用於檢測 parseFloat() 和 parseInt() 的結果,以判斷它們表示的是否是合法的數字。當然也可以用 isNaN() 函數來檢測算數錯誤,比如用 0 作除數的情況。
  7. JS對象中的Array對象和String對象的各種方法

  8. this關鍵字在不同環境下的指向
    5種情況下的this指向

  9. JS的作用域
    作用域和命名空間
  10. setTimeout和setInterval
    (setTimeout和setInterval的區別你真的瞭解嗎?)[http://www.jb51.net/article/26679.htm]
  11. js有哪些基本對象
    JavaScript對象:Array,Boolean,Date,Math,Number,String,RegExp,Functions,Events
    browser對象:Window,Navigator,Screen,History,Location
    html對象:Document,Element,Attribute,Event
  12. call、apply、callee 孰知應用
    js apply詳解
    javascript中callee與caller的用法和應用場景
  13. 跨域實現方法
    詳解js跨域問題
  14. 事件監聽、回調、發佈訂閱模式、promise實現
    javascript實現異步的四種方法
    設計模式之觀察者模式
  15. AMD CMD 模塊化JS
    javascript模塊化編程
  16. 內存泄露的原因和場景。
    深入淺出JavaScript內存泄露
    javascript內存泄露的幾種情況
  17. 如何判斷js類型
    JavaScript中判斷對象類型的種種方法
  18. 按值傳遞和按引用傳遞
    JavaScript中值的訪問與參數傳遞問題
  19. 重排和重繪
    瀏覽器渲染頁面的過程,以及重繪和重排
  20. 嚴格模式
    是時候使用JavaScript嚴謹模式(Strict Mode)提升團隊開發效率
  21. 簡述document.write和 innerHTML的區別。
    document.write只能重繪整個頁面,
    innerHTML可以重繪頁面的一部分。
  22. extend
    extend 方法在js框架中的設計

相關知識

IE與firefox,chrome等瀏覽器的差別

事件:
ie:attachEvent, window.event,window.event.srcElement
chrome:addEventListener, event;event.target
其他:
- firefox不支持innerText,但是支持一個相似的textContent
- ie不支持getComputedStyle()這個方法,他支持currentStyle這個屬性
- 盒模型不同
- 瀏覽器默認樣式不同,利用*{margin:0,padding:0},統一

性能優化的方法

前端工程與性能優化
前端優化的手段都有哪些?
毫秒必爭,前端網頁性能最佳實踐

服務器層面:
cdn,前後端不同域名(減少cookie),gzip壓縮文件,合併文件,雪碧圖,304緩存,壓縮代碼,移除重複腳本,圖像優化;
通過Keep-alive機制減少TCP連接。
避免跳轉 跳轉是使用301和302代碼實現的

代碼層面:
將樣式表放在頂部,將腳本放在底部,儘早刷新文檔的輸出;
減少重排和重繪,利用DocumentFragments,同時更改樣式時儘量通過更改className可減少reflow,
減少dom數量;
事件代理,
減少dom的訪問次數,如果需要多次訪問某個DOM節點,請使用局部變量存儲對它的引用。
重構HTML,把重要內容的優先級提高(聖盃佈局)。
利用預加載優化資源。
利用LocalStorage合理緩存資源。
利用媒體查詢請求不同大小的圖片

http狀態碼

1XX表示請求接受成功,待進一步處理
2XX表示訪問成功
3XX 訪問重定向
4XX 客戶端請求錯誤,包括語法、文件路徑
5XX 服務器出現錯誤

200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報 //頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後,可能恢復正常

資料鏈接

綜合面試題

  1. 最全前端面試問題及答案總結
  2. 常見前端面試題及答案
  3. javascript祕密花園
  4. 前端面試
  5. 初級Web前端工程師面試必看面試題
  6. 前端工作面試問題
  7. 史上最全 前端開發面試問題及答案整理

CSS

  1. css權重
  2. 史上最全Html和CSS佈局技巧
  3. 聖盃佈局

相關

  1. cache-control
  2. http狀態碼詳解
  3. 現代瀏覽器的工作原理
  4. 當你輸入一個網址,實際會發生什麼?
  5. Web安全測試之XSS
  6. 前端進階-讓你升級的網絡知識
  7. 前端優化不完全指南
  8. 聊一聊cookie

面經相關

  1. 前端面試時總讓寫原生Ajax真的很有意義嗎?
發佈了49 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章