awd平臺搭建
1. JavaScript 基礎,包括原型與原型鏈、繼承、事件迴圈、作用域、ES6語法、垃圾回收與記憶體洩漏等。
2. 網路通訊,重點有瀏覽器快取、Http2.0、Https通訊過程、TCP與UDP、DNS解析、CDN快取等。
3. HTML和CSS,這塊被問的內容比較少,重點從佈局入手,比如單位、盒模型、定位、響應式佈局等知識點。
4. 前端框架,框架的底層原理是一定會問的,至少要深入掌握一個前端框架。目前業界內比較流行的框架是 React 和 Vue,React 的知識點有 React diff、生命週期、Fiber 架構、Hooks 等;Vue 的知識點有Vue diff、響應式原理、Vue3.0新特性等。
5. 打包工具,主要圍繞Webpack展開,比如loader和plugin原理、webpack構建流程、熱更新原理、效能優化等。除此以外,打包界的新寵esbuild也可以瞭解下。
6. 加分項,除了JavaScript外,還了解哪些程式語言
OM 的事件機制,怎麼阻止事件捕獲
常用的 ES6 語法有哪些,var 怎麼實現let
React Hooks vs Component
React中的 useCallback 和 useMemo 有什麼區別,什麼情況下需要用 useCallback
瀏覽器的 Event Loop 機制
setState 是同步還是非同步的
Set 的用法,用 Set 實現陣列去重
Graphql 的使用
移動端適配方案, rem 和 em 的區別
React 解決了什麼問題
前端跨域怎麼做
程式設計題:用 setTimeout 實現 setInterval
-
Vue 的雙向繫結機制
-
位元組小程式和微信小程式區別
-
React Fiber 機制
-
React Hooks 的原理
-
Node 遇到過哪些效能問題
-
Node 做耗時的計算時候,如何避免阻塞
-
低程式碼平臺執行時的生成邏輯
-
低程式碼平臺效能優化
-
低程式碼平臺元件釋出流程
-
上家公司做了哪些事情以及做事的流程
-
未來職業規劃
-
感興趣的工作方向
-
程式設計題:輸入兩個陣列 [1,2,3,2,1], [3,2,1,4,7] 返回公共的並且長度最長子陣列的長度
-
less-loader 的 less 轉成 css 的底層原理
-
webpack的 loader 和 plugin 區別
-
webpack 常用外掛
-
webpack 如何做程式碼拆分
-
webpack tree shaking 原理
-
webpack 動態匯入原理
-
webpack 熱更新原理
-
webpack5 新特性
-
esm 和 commonjs 的區別
-
TS 的 type 和 interface 的區別
-
TS 怎麼做列舉
-
TS 泛型
-
canvas 繪製流程,canvas 裡的圖片跨域怎麼處理
-
專案經歷:babel 外掛的實現
-
程式設計題:實現一個深拷貝
二面
-
連結串列和線性表 crud 比較
-
瞭解哪些設計模式,實現其中一個設計模式
-
canvas 繪製流程,遇到了哪些問題
-
從輸入URL到瀏覽器顯示頁面過程中都發生了什麼?
-
移動端佈局方案
-
瀏覽器 Event Loop
-
對圖形繪製瞭解多少
-
ES6 為什麼要轉成 ES5
-
H5 開發時遇到了哪些問題,怎麼定位的
-
DOM 事件流
-
平時怎麼做效能優化
-
最有亮點的兩個專案
三面
-
HTTPS 加解密過程
-
雜湊表原理,雜湊碰撞時怎麼處理
-
記憶體回收機制
-
棧記憶體和堆記憶體的概念
-
線上錯誤監控怎麼做
-
CI/CD 流程,有哪些改進點
-
程序間如何通訊
-
低程式碼平臺的實現
-
對下一份工作的期望
3. 神策
一面
-
CSS 前處理器對比
-
CSS 定位有哪些取值
-
原型與原型鏈,函式怎麼實現繼承
-
this的指向,call、apply的區別
-
Vue 3.0 和 2.0 區別
-
Vue.$nextTick 作用
-
Vue 和 React 的 diff 有什麼區別
-
proxy 攔截器的用法
-
DNS 解析流程
-
事件迴圈
-
閉包和記憶體洩漏
-
最有亮點的一個專案
二面
-
HTTP 冪等性定義和常用方法的冪等性
-
redux 單向資料流有哪些優勢,redux 中介軟體實現原理
-
React HOC vs renderProps
-
瀏覽器裡的執行緒與程序
-
requestAnimationFram 與 requestIdleCallback 的區別
-
npm管理痛點,如何解決
-
gitflow流程、分支管理
-
websocket建立連線過程
-
元件/工具庫打包時的格式輸出,如:CommonJS、ESM、UMD等,他們之間有什麼區別
-
Http 301、302 狀態碼的區別
-
H5 效能優化
-
程式設計題:設計一個flat函式將如下陣列arr=[1,2,['3',4,'5',[6,[7,8],9]]]輸出為1,2,'3',4,'5',6,7,8,9。至少寫出兩種方法,要求不能改變陣列中的原始資料型別
三面
-
BI 視覺化系統介紹
-
在位元組之後的提升有哪些
-
目前前端可以做的優化有哪些
-
新舊系統重構的時候,怎麼過渡上線
-
Vue React 的區別
-
位元組小程式介紹一下
-
自己未來的規劃。自己的優缺點、周圍人人對自己的評價
-
如何學習一門新技術
-
對神策資料的瞭解
-
對大資料的瞭解
4. 王者榮耀
一面
-
程序通訊的幾種方式
-
TCP/IP 如何保證傳輸穩定性
-
對稱加密和非對稱加密的使用場景
-
瀏覽器幀卡頓檢測
-
Vue 和 React的設計理念
-
效能指標FP、FCP和FMP分別跟哪些因素有關
-
低程式碼平臺的技術原理
-
業界其他低程式碼平臺實現方式,對比差異
-
nginx怎麼做反向代理與負載均衡
-
程式設計題:設計和實現一個 LRU (最近最少使用) 快取機制,滿足:1.獲取資料 get(key) - 如果金鑰 (key) 存在於快取中,則獲取金鑰的值(總是正數),否則返回 -1。2.寫入資料 put(key, value) - 如果金鑰已經存在,則變更其資料值;如果金鑰不存在,則插入該組「金鑰/資料值」。
5. 天眼查
一面
-
JS 有哪些資料型別
-
JS 資料型別識別的方式,有什麼缺點
-
原型和原型鏈,函式怎麼實現繼承
-
new 發生了什麼
-
symbol 型別的用法
-
script 標籤裡分別設定 defer 和 async, 它們的執行順序是怎麼樣的
-
React router 的兩種模式模式,怎麼動態獲取路由上的 id
-
redux 中介軟體的實現原理
-
React 的 purecomponent 和 component 的區別
-
generator 函式的用法
-
React diff 節點對比的過程
-
Vite 打包工具的使用
-
箭頭函式和普通函式區別
-
什麼是執行上下文
-
堆記憶體和棧記憶體,陣列儲存在堆記憶體還是棧記憶體
-
HTTP2.0 相較於 HTTP1.0 的改進
-
isNaN和number.isNaN區別
-
閉包和記憶體洩漏
-
setState 是同步還是非同步的
-
HTTP 與 HTTPS 的區別
-
React Hooks 的 useState 為什麼不能放到條件語句
-
解釋下瀏覽器的同源策略
6. 酷家樂
一面
-
Node 怎麼做效能監控
-
React diff 節點移動的具體過程
-
講一講瀏覽器快取
-
ES5 最優的一種函式繼承,靜態屬性怎麼做繼承的
-
前端怎麼做效能監控
-
V8 引擎對垃圾回收的優化
-
導致記憶體洩漏的方法,怎麼監控記憶體洩漏
-
作用域和執行上下文區別
-
this的指向問題
-
Array方法,forEach、map 對比
-
for of 和 for in 區別;for of 迴圈陣列時怎麼拿到陣列索引
-
移動端佈局方案;怎麼設定根元素的font-size大小的
-
Webpack bundle、chunk、module的區別
-
Webpack 熱更新原理,怎麼找到對應的區域性模組做更新的
-
專案經歷:babel外掛的實現
7. 中國人壽
一面
-
HTTP2.0 和 HTTP1.0 的區別,HTTP2.0 有什麼缺點
-
閉包及閉包的使用場景
-
實現一個側邊欄元件思路
-
瀏覽器快取機制
-
重排與重繪,怎麼減少重排
-
DOM 事件機制,不會冒泡的事件
-
cookie 和 session 的區別
-
sql 相關操作,增刪查改
-
web 安全,xss、csrf 攻擊特點及防禦方式