前言
秋招感覺即將接近尾聲了,今年的秋招可謂是風起云涌、鑼鼓喧天、異彩紛呈(聽說騰訊總包都40w+,流下羨慕的眼淚),
秋招期間,我特別喜歡在牛客上看各位大佬的面經、offer等,看的不亦樂乎,每天增加一個小幻想,
前幾天在看面經時,突然想到,有的題我見過很多次,有的題第一次見,現在雖說有八股文,但每年的面試行情應該都會有小的變化,要不來做個統計,粗略的估計一下今年面試市場的態勢,
說做就做,耗費了我好幾個快樂游戲的夜晚,挨著面試題、面經的復制、去重,最后精挑細選出547道題目,其中筆試題200道,面試題357道,
本文涉及的題目全是JavaScript方向,前端框架、計算機基礎知識方向還在統計中,
考點劃分
本文章將 JavaScript 分為幾大考點:
ECMAScript基礎(簡稱JS基礎):包括型別、運算子、字串、陣列、物件、函式等基礎知識ECMAScript深入(簡稱JS深入):包括this指向、原型與原型鏈、作用域與作用域鏈、垃圾回收、同步異步、事件回圈等ES6BOMDOM
接下來我們來一起分析一下這些題目(作者是個機械狗,有可能分析的會有點生硬,希望大佬們見諒):
筆試題
題型分析
在線筆試題中程式題大多也是有選項的,但是我感覺程式題的難度是超出選擇題,因此我把它單獨列為一項,
筆試題有五類:單選題、多選題、填空題、程式題,簡答題,下面是各類題目出現的數量:
| 題型 | 單選題 | 多選題 | 填空題 | 程式題 | 簡答題 |
|---|---|---|---|---|---|
| 數量 | 63 | 14 | 34 | 85 | 4 |
更直觀的表現看下面餅圖:

可以從上面的表格和餅圖中看出:
- 重視基礎:選擇題、填空題比重較大,簡答題的比重較小
- 重視代碼能力:程式題的比重最大,
程式題分析
將程式題考點籠統的分為四類:JS 基礎、JS 深入、ES6 題、其他題,各類題目的數量如下:
| 類別 | JS基礎 | JS深入 | ES6題 | 其他題 |
|---|---|---|---|---|
| 數量 | 40 | 31 | 10 | 4 |
更直觀的表現看下面餅圖:

可以從上面的表格和餅圖中看出:
- 程式題難度適中:基礎題和深入題所占比重類似,筆試題同樣注重
JS深入部分的考察, ES6占比較少: 在筆試題中,ES6考察的部分大多數與JavaScript深入結合,例如:promise與事件回圈結合;箭頭函式與this指向結合,let/const與作用域結合等,
考點分析
將筆試題按考點劃分成:JS 基礎、JS 深入、ES6、BOM、DOM,具體數量見下表
| 考點 | JS基礎 | JS深入 | ES6題 | BOM | DOM |
|---|---|---|---|---|---|
| 數量 | 105 | 43 | 25 | 7 | 20 |

通過對考點的分析,我們可以得出:
- 筆試超級超級重視基礎
JS深入題大多出現在程式題中DOM事件部分
筆試熱門考點
筆試題的十大熱門考點見下表:
| 考點 | 數量 |
|---|---|
| 型別檢測 | 22 |
| 型別轉換 | 20 |
| promise | 20 |
| 陣列 | 18 |
| 字串 | 12 |
| 運算子 | 11 |
| 作用域 | 11 |
| this | 10 |
| 原型 | 10 |
| let/const | 7 |

筆試題總結
通過對200道題多維度的分析,我們可以得出筆試部分的復習重點:
- 基礎為神,尤其幾個方面,一定要熟練掌握——原生JavaScript靈魂拷問,你能答上多少(一)
- 型別檢測:
typeof/instanceof - 型別轉換:
"+", "=="隱式轉換 DOM: 事件流- 陣列: 陣列方法(那些陣列方法會修改原陣列,那些不會)
- 字串: 字串方法,配合正則使用
- 型別檢測:
JavaScript深入部分的各類難點要熟知,并且能說出其大致流程,看到程式題要知道從何入手,- ES6部分以基礎居多,
promise要重點掌握
面試題
面經部分共 357 道題,題目來自阿里、騰訊、百度、位元組、滴滴、拼多多、京東、B站、富途、美團、網易、小紅書、有贊、快手、其他,

考點分析
依舊將考點劃分為五類:JS 基礎、JS 深入、BOM、DOM、ES6,我們來一起看一下面試題各類考點的數量:
| 考點 | JS基礎 | JS深入 | BOM | DOM | ES6 |
|---|---|---|---|---|---|
| 數量 | 37 | 200 | 9 | 12 | 87 |

可見面試題部分的難度明顯加大了很多,JavaScript 深入占據了總題目的一半以上,ES6 比重也增大很多,所以我們在準備面試部分時,JavaScript 深入部分的學習要重視、重視、再重視,
JS深入部分分析
將 JS 深入部分的考點進一步劃分:作用域、this、原型、垃圾回收、瀏覽器存盤、事件回圈、異步、手撕代碼,

注意:手撕代碼可太重要了,當下的面試中,代碼撰寫能力占據的比重越來越大,很多公司還會有演算法題,
ES6部分分析
將 ES6 部分的考點進一步劃分:遍歷方法、箭頭函式、let/const、set/map、promise、proxy、async/await、其他

ES6 考察就是多點開花,日常開發中就要多用 ES6 語法,但記住一句話,promise 是 ES6 的真神,
手撕代碼題
接下來我會羅列所有出現的手撕代碼題,并指明其出現頻率(從高到低),
promise(21, 所有的公司): 實作一個簡單的promise、實作promise.all等- 陣列去重(13, 僅小紅書、快手未找到): 你能用多少種方法實作陣列去重、陣列去重優化等
- 防抖(10): 防抖的作用,什么場景下使用防抖,手撕防抖等
- 節流(10): 節流的作用,什么場景下使用節流,手撕節流等
- 深拷貝(9): 深拷貝實作(考慮到函式情況、物件、陣列、正則、Date)
jsonp/ajax(7): 手撕ajax、jsonp、jsonp/ajax區別new(6)- 繼承(5)
- 陣列扁平化(4)
- 陣列函式模擬(4):
forEach、map、reduce、filter、find、indexOf等 call/apply/bind(3)- 柯里化(3)
- 陣列亂序(2)
- 千分符(2)
"get-element-by-id"變為小駝峰模式(2)- instanceof(1)
- 封裝
cookie方法(1) Object.create(1)- 求嵌套陣列深度(1)
- 原生模擬
class(1)
面試題總結
代碼為神
面試部分可謂是得代碼者得天下,常見的手撕代碼一定要熟練、再熟練,不止要會寫,也需要知道為什么,這將是特別大的加分項,
promise: 重中之重- 陣列去重: 多種實作方法,如果涉及到物件該怎么辦?
- 防抖節流: 一定要區分開,而且要能舉出例子來,不要硬背代碼
- 深拷貝: 要學會實作全面的深拷貝,面試的要求和難度越來越大,因此日常復習準備時,一定要考慮所有的情況,
- …
考察深度深,廣度廣
對于 JavaScript 深入部分一定要吃透,完全的吃透,
this指向: 四種系結(默認系結、隱式系結、顯式系結、new 系結)——《2w字大章 38道面試題》徹底理清JS中this指向問題- 作用域: 預編譯(函式四部曲、全域三部曲)——JavaScript之預編譯學習
- 原型與原型鏈: 原型圖一定要熟悉——JavaScript之徹底理解原型與原型鏈
- 事件回圈: 宏任務與微任務(promise)——JavaScript之徹底理解EventLoop
重視ES6 部分
很多方法的原理都要掌握: async 原理,set 去重原理等,
后語
- 本文涉及的這
547道題,后面我整理一下,會全部發出來,并且會挑其中我認為特別好的題目做一下分析講解,有興趣大佬可以關注一下 - 手撕代碼部分,我會陸續都認真、完善的實作一遍
- 目前我正在撰寫
JavaScript深入系列和JavaScript基礎系列(靈魂拷問),如果大家需要可以關注我的博客, - 本文僅涉及
547道題,分析的結果有可能存在不準確性,僅供參考,
如果本文能有幸幫到一些大佬,那阿包的付出就太值得了,
最后,預祝大家都多拿offer,找到心儀的作業,一起fighting,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/335174.html
標籤:其他
