前端工程師職位理解:
a. 前端是最貼近用戶的程序員,前端的能力就是能讓產品從 90分進化到 100 分,甚至更好
b. 參與項目,快速高質量完成實現效果圖,精確到1px;
c. 與團隊成員,UI設計,產品經理的溝通;
d. 做好的頁面結構,頁面重構和用戶體驗;
e. 處理hack,兼容、寫出優美的代碼格式;
f. 針對服務器的優化、擁抱最新前端技術
每個面試都需要做充分的准備,面試建議從以下幾個方面准備:
1、技術,這個是硬性要求。我們這邊的技術棧 主要是react,可以重點准備react。當然 js、css等前端的基礎 是最基本的東西。除此之外,要做一定的深度拓展,比如了解其實現原理。
2、溝通,要准備 自己所做過項目的的 項目背景、自己負責的模塊、遇到的難題、自己解決了哪些問題。在溝通時 最好 1,2,3,4,。。這樣邏輯清晰的表述【這點非常重要】
3、 自己的學習能力,技術的迭代很快,作為一名技術同學,對技術的追求必不可少。面試中最好體現自己有一定的學習能力。
F&Q: 面試過程中不必緊張,溝通時候邏輯要清晰,最好分條陳述,不懂的虛心問一下
以下面試題目必准備【只是部分,還需自己多准備】:
一、 js 、 css 基礎,這一塊自行准備
1、什么是盒子模型?
2、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
3、簡述一下src與href的區別
4、什么是CSS Hack?
5、簡述同步和異步的區別
6、px和em的區別
7、什么叫優雅降級和漸進增強
8、瀏覽器的內核分別是什么?
9、http 狀態碼,以及常見的狀態碼
10、怎樣添加、移除、移動、復制、創建和查找節點?
createDocumentFragment() //創建一個DOM片段
createElement() //創建一個具體的元素
createTextNode() //創建一個文本節點
2)添加、移除、替換、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替換
insertBefore() //插入
3)查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性
11、想實現一個對頁面某個節點的拖曳?如何做?---使用原生JS
12、Javascript中callee和caller的作用?
13、請描述一下cookies,sessionStorage和localStorage的區別
14、數組快速排序
15、一次完整的HTTP事務是怎樣的一個過程?
二、 react:
1、區分Real DOM和Virtual DOM
2、React有什么特點
3、列出React的一些主要優點
4、React有哪些限制
5、什么是JSX
6、你了解 Virtual DOM 嗎?解釋一下它的工作原理
7、與 ES5 相比,React 的 ES6 語法有何不同
8、你理解“在React中,一切都是組件”這句話
9、解釋 React 中 render() 的目的
10、什么是 Props?
11、React中的狀態是什么?它是如何使用的?
12、如何更新組件的狀態?React 中的箭頭函數是什么?怎么用?
13、React組件生命周期的階段是什么,詳細解釋 React 組件的生命周期方法
14、React中的事件是什么
15、你對 React 的 refs 有什么了解,列出一些應該使用 Refs 的情況
16、什么是高階組件(HOC)?你能用HOC做什么?你對受控組件和非受控組件了解多少?什么是純組件?
17、React 中 key 的重要性是什么?
React Redux:
18、解釋一下 Flux
19、什么是Redux?Redux遵循的三個原則是什么?
20、你對“單一事實來源”有什么理解?
21、列出 Redux 的組件
22、數據如何通過 Redux 流動
23、如何在 Redux 中定義 Action,解釋 Reducer 的作用。Store 在 Redux 中的意義是什么?
24、Redux與Flux有何不同?
25、Redux 有哪些優點?
React 路由
26、什么是React 路由?
27、為什么React Router v4中使用 switch 關鍵字 ?
28、為什么需要 React 中的路由?
29、列出 React Router 的優點。
30、React Router與常規路由有何不同?
hooks
1、簡單介紹下什么是hooks,hooks產生的背景?hooks的優點?
2、知道hoc和render props嗎,它們有什么作用?有什么弊端?
3、Render Props
4、a. 什么是屬性代理?b. 屬性代理的用途
5、反向繼承
6、你的項目中怎么使用的高階組件
7、hooks和hoc和render props有什么不同?
8、介紹下常用的hooks
9、描述下hooks下怎么模擬生命周期函數,模擬的生命周期和class中的生命周期有什么區別嗎
10、hooks中的坑,以及為什么
11、useState中的第二個參數更新狀態和class中的this.setState區別
12、useEffect和useLayoutEffect區別
13、使用hooks實現自定義hooks, 一個計算組件從掛載到卸載的時間?