前言
過完年了,準備實習的你是已經在實習了,還是已經辭職回家過年,準備年后重新找工作呢,又或者是準備2021年春招?
那么還沒沒踏出校門或者是剛出校門沒多久的同學們該如何準備前端校招的面試呢?
CSS篇
- 讓一個元素水平垂直居中,到底有多少種方案?
- 浮動布局的優點,缺點?清除浮動的方式?
- 使用display:inline-block會產生的問題?解決方法?
- 布局題:div垂直居中,左右10px,高度始終為寬度一半
- CSS如何進行布局
- 什么是BFC?
- 觸發條件
- BFC渲染規則
- 應用場景
- …
JavaScript篇
- JS原始數據類型有哪些?引用數據類型有哪些?
- null是對象嗎?為什么?
- ‘1’.toString()為什么可以調用?
- 0.1+0.2為什么不等于0.3?
- 什么是BigInt?
- 為什么需要BigInt?
- 如何創建并使用BigInt?
- typeof 是否能正確判斷類型?
- instanceof能否判斷基本數據類型?
- 能不能手動實現一下instanceof的功能?
- Object.is和===的區別?
- [] == ![]結果是什么?為什么?
- JS中類型轉換有哪幾種?
- == 和 ===有什么區別?
- 對象轉原始類型是根據什么流程運行的?
- 對閉包的理解
- 原型對象和構造函數有何關系?
- 能不能描述一下原型鏈?
- JS如何實現繼承?
- 函數的arguments為什么不是數組?如何轉化成數組?
- forEach中return有效果嗎?如何中斷forEach循環?
- JS判斷數組中是否包含某個值
- JS中flat—數組扁平化
- 數組中的高階函數
- 實現數組map方法 ?
- 實現數組reduce方法 ?
- 實現數組 push、pop 方法 ?
- 實現數組filter方法 ?
- 實現數組splice方法 ?
- 實現數組splice方法 ?
- 實現數組sort方法?
- 模擬實現一個new的效果?
- 模擬實現一個 bind 的效果?
- 實現一個 call/apply 函數?
- 談談你對JS中this的理解
- JS中淺拷貝的手段有哪些?
- 寫一個完整的深拷貝
進階
- 數據是如何存儲的?
- V8 引擎如何進行垃圾內存的回收?
- 描述一下 V8 執行一段JS代碼的過程?
- 宏任務(MacroTask)引入
- 微任務(MicroTask)引入
- 理解EventLoop
- nodejs 和 瀏覽器關于eventLoop的主要區別
- 關于process.nextTick的一點說明
- nodejs中的異步、非阻塞I/O是如何實現的?
- JS異步編程有哪些方案?為什么會出現這些方案?
- 簡單實現一下 node 中回調函數的機制?
- Promise 憑借什么消滅了回調地獄?
- 為什么Promise要引入微任務?
- Promise 如何實現鏈式調用?
- 實現Promise的 resolve、reject 和 finally
- 實現Promise的 all 和 race
- 談談你對生成器以及協程的理解
- 如何讓 Generator 的異步代碼按順序執行完畢?
- 解釋一下async/await的運行機制。
- forEach 中用 await 會產生什么問題?怎么解決這個問題?
- 關于JS中一些重要的api實現
最后
由于文檔內容過多,為了避免影響到大家的閱讀體驗,在此只以截圖展示部分內容,詳細完整版的JavaScript面試題文檔,或更多前端資料可以點此處免費獲取。
此只以截圖展示部分內容,詳細完整版的JavaScript面試題文檔,或更多前端資料可以點此處免費獲取。