2019前端工程師自檢清單
對於JavaScript,掌握其語法和特性是最基本的,但是這些只是應用能力,最終仍舊考量仍然是計算機體系的理論知識,所以資料結構,演算法,軟體工程,設計模式等基礎知識對前端工程師同樣重要,這些知識的理解程度,可以決定你在前端工程師這條路上能走多遠,是時候進行一波自檢了,查漏補缺,只有全面發展,才會使你更強,以下會進行自問的形式按照圖片裡面的知識點進行自我check
知識點在面試過不下50人後進行的一波總結
可能不全,有新增的點可以放在評論區討論
1.你關於效能優化是否只知道js檔案擺放順序、減少請求、雪碧圖等等,卻連衡量指標window.performance.timing都不清楚是幹什麼的?
2.請你描述下一個網頁是如何渲染出來的,dom樹和css樹是如何合併的,瀏覽器的執行機制是什麼,什麼是否會造成渲染阻塞?
3.請簡述下js引擎的工作原理,js是怎樣處理事件的eventloop,巨集任務源tasks和微任務源jobs分別有哪些?js是如何構造抽象語法書(AST)的?
4.你是否考慮全面你編寫的整個函式,或者整個功能的容錯性與擴充套件性?怎樣構建一個元件是最合理最科學的,對於錯誤的處理是否有統一的方式方法?
5.瀏覽器快取的基本策略,什麼時候該快取什麼時候不該快取,以及對於控制快取的欄位的相關設定是否清楚?
6.你是否可以利用物件導向的思維去抽象你的功能,你會構建一個class(ES6)嗎?你對於前端架構的理解?
7.你會用VUE,你會用React,你讀得懂這兩個架構的原始碼嗎?你懂他倆的基本設計模式嗎?讓你去構建一個類似的框架你如何下手?
8.你瞭解的ES6只是const、let、promise嗎?你考慮過ES6提出的真正趨勢嗎?
9.你會用less,那麼讓你去寫一個loader你可以嗎?
10.webpack你也會用,你瞭解其中原理嗎?你知道分析打包依賴的過程嗎?你知道tree-shakeing是如何幹掉無用重複的程式碼的嗎?
11.你真的熟練使用css嗎,那你知道position有幾個屬性嗎,具體參考https://github.com/wintercn/b...
12.你瞭解js的資料結構嗎?基本資料型別有哪些?複雜資料型別有哪些?在記憶體是如何表現的?
13.你可以用js去實現一個單向、雙向、迴圈連結串列嗎?你可以實現查詢、插入、刪除操作嗎?
14.你瞭解基本常見演算法嗎?快速排序寫一個?要是限制空間利用你該如何寫?
15.你瞭解貪心演算法、動態規劃、分治演算法、回溯演算法等常見的演算法嗎?
16.你是如何理解前端架構的?你瞭解持續整合嗎?
17.你瞭解基本的設計模式嗎?舉例單例模式、策略模式、代理模式、迭代模式、釋出訂閱模式。。。?
18.寫一個事件監聽函式唄?實現once、on、remove、emit功能
19.node.js的實現層是什麼?
20.node的事件迴圈機制是怎樣的?
21.node的child_process模組有幾個api,分別的作用是什麼?
22.http1.0與1.1協議的區別?
23.node是如何實現http模組的?
24.如何構建一個主從模式?
25.nginx相關配置瞭解過嗎?
26.你真的理解前端嗎?
有落下的方面,請在評論區寫下您寶貴的看法,我會第一時間加入進來!!!
雖然有些方面還未補足,但是可以作為參考~