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
: 重中之重 -
数组去重: 多种实现方法,如果涉及到对象该怎么办?
-
防抖节流: 一定要区分开,而且要能举出例子来,不要硬背代码
-
深拷贝: 要学会实现全面的深拷贝。面试的要求和难度越来越大,因此日常复习准备时,一定要考虑所有的情况。
-
…
考察深度深,广度广
对象篇
模块化编程-自研模块加载器
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】