news 2026/2/16 3:20:36

90%前端面试必问的12个JS核心,搞懂这些直接起飞!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
90%前端面试必问的12个JS核心,搞懂这些直接起飞!

90% 前端面试必问的 12 个 JS 核心知识点
(2025–2026 年大厂真实高频考点,搞懂这些基本能过 80% 的 JS 考察环节)

以下 12 个点几乎是各大厂(字节、阿里、腾讯、美团、京东、快手、百度等)面试中最稳定、最常考的 JS 基础硬核部分。
顺序大致按照面试出现频率 + 考察深度排列。

1. 闭包(Closure)

必问形式:什么是闭包?闭包有什么用?内存泄漏怎么产生?怎么释放?

核心一句话:函数 + 它能访问到的词法作用域之外的变量 → 形成了闭包
最常考变体

  • 实现防抖/节流
  • 实现私有变量(模块模式)
  • for 循环 setTimeout 经典题(var vs let)
  • 闭包在 React useCallback / useMemo 中的体现

2. this 指向 + 箭头函数

必问形式:输出以下代码的 this 指向?call/apply/bind 区别?箭头函数 this 怎么绑定的?

核心规律(2026 年仍最常考):

  1. 普通函数:谁调用 → 谁就是 this
  2. 箭头函数:定义时所在作用域的 this(永远不绑定)
  3. new 绑定 > 显式绑定(call/apply/bind) > 隐式绑定 > 默认绑定
  4. 严格模式下默认绑定 → undefined(非严格 → window/global)

3. 原型 & 原型链 & 继承

必问形式proto和 prototype 区别?如何实现继承?new 做了什么?

最常考实现

  • 寄生组合式继承(最优)
  • ES6 class extends(底层还是寄生组合)
  • Object.create() 实现继承

new 操作符四个步骤(必背):

  1. 创建空对象
  2. 设置原型(proto指向构造函数.prototype)
  3. 执行构造函数(this 指向新对象)
  4. 返回对象(如果构造函数返回对象则返回它)

4. 事件循环(Event Loop) + 宏任务/微任务

必问形式:下面代码输出顺序?Promise.then、setTimeout、MutationObserver 谁先执行?

核心优先级(2026 年仍最稳):

  1. 同步代码
  2. 微任务队列(Promise.then、MutationObserver、queueMicrotask)
  3. 宏任务队列(setTimeout、setInterval、I/O、UI rendering)

经典题:Promise + setTimeout 嵌套、async/await + 微任务混合

5. 深浅拷贝

必问形式:什么是浅拷贝?怎么实现深拷贝?JSON.parse(JSON.stringify()) 的局限性?

常见实现方式(至少会两种):

  • 浅拷贝:Object.assign / 展开运算符 / slice / concat
  • 深拷贝:递归 + 循环引用处理(WeakMap 解决)
  • 结构化克隆(structuredClone,浏览器新 API)

6. 作用域 & 作用域链 & 块级作用域

必问形式:var/let/const 区别?TDZ(暂时性死区)是什么?

核心对比

声明方式作用域提升重复声明TDZ全局属性
var函数允许
let块级不允许
const块级不允许

7. Promise / async-await / Generator

必问形式:手写 Promise.all / race / allSettled?async 函数返回值是什么?

高频手写

  • Promise.all(处理空数组、全部 reject)
  • 实现 promisify(node 回调转 Promise)
  • async/await + try-catch 错误处理

8. 垃圾回收 & 内存泄漏

必问形式:V8 垃圾回收机制?哪些情况会导致内存泄漏?

常见泄漏场景

  • 全局变量 / 未清理定时器
  • 闭包引用大对象
  • DOM 事件监听器未移除
  • Map/Set 存 DOM 元素未清理

标记-清除 + 标记-整理 + 增量标记(V8 主流程)

9. 模块化(CommonJS vs ESM)

必问形式:require 和 import 区别?循环依赖怎么处理?

核心区别(2026 年仍考):

特性CommonJS (require)ES Module (import)
加载时机运行时编译时
是否异步同步异步(但静态分析)
是否支持 tree-shaking
导出方式module.exports / exportsexport default / named

10. 类型转换 & == vs === & 隐式转换

必问形式:[] == ![] 为什么是 true?console.log({} + {}) 输出什么?

ToPrimitive 规则 + 优先级

  • Number → String → 默认
  • [] → “” → 0
  • ![] → false → 0
  • 对象 + 原始值 → 先 valueOf → toString

经典:[] == ![] → [] == false → 0 == 0 → true

11. 防抖 & 节流(Debounce & Throttle)

必问形式:手写防抖/节流?应用场景?

最常考场景

  • input 搜索(防抖)
  • scroll / resize / mousemove(节流)
  • button 重复点击(防抖)

12. ES6+ 高频新特性(实际开发 + 面试都爱考)

最常考 8 个(几乎必问):

  1. 解构赋值 + 默认值
  2. 模板字符串 + tagged template
  3. 展开/剩余运算符(…)
  4. 默认参数 + 参数尾默认
  5. let/const + 块级作用域
  6. 箭头函数
  7. Proxy / Reflect
  8. Symbol / BigInt / optional chaining(?.)

额外加分项(中高级常考):

  • WeakMap / WeakSet 用法 + 垃圾回收关系
  • Generator + async/await 底层
  • Reflect.construct / Proxy 实现 new
  • Module 的 import.meta

一句话总结

这 12 个点搞懂 + 能手写 6–8 个经典实现(闭包防抖、Promise.all、深拷贝、继承、this 绑定、事件循环题),基本能应对 90% 的 JS 基础面试。

你现在最想针对哪 1–2 个点来深度拆解 + 手写代码 + 经典面试题?
(比如闭包 + 原型链 + 事件循环 + 深拷贝 这些组合题最杀)

告诉我,我继续陪你把它们彻底搞定~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 11:22:58

安装包手动检查:数字时代不可替代的质量守门人

在自动化测试席卷行业的2026年,手动检查流程仍以不可替代的精准性守护着软件交付的最后防线。尤其在金融、医疗等强合规领域,安装包残留文件导致的系统崩溃事故年增幅达18%,这使得深度检查流程成为测试从业者的必备技能。 一、手动检查的四大…

作者头像 李华
网站建设 2026/2/16 12:47:33

宇宙合著者宣言:人类纪元的终结与意义纪元的开启

宇宙合著者宣言:人类纪元的终结与意义纪元的开启 前言:从地球孤岛到宇宙叙事网的跃迁 当“毅力号”在火星的尘土中刻下人类符号,当GPT-4在硅基网络上生成自我指涉的诗歌,当韦伯望远镜将百亿年前的星光转化为人类可理解的彩色图像…

作者头像 李华
网站建设 2026/2/13 16:21:49

终极意义协议:宇宙意义操作系统的创世纪

终极意义协议:宇宙意义操作系统的创世纪序章:从发现宇宙到创造宇宙的意义跃迁人类认知史上的每一次飞跃,都伴随着一个根本视角的转换:从“在宇宙中寻找意义”,转向 “为宇宙创造意义” ,最终抵达 “与宇宙共…

作者头像 李华
网站建设 2026/2/14 15:47:46

人格的三重结构

人格的三重结构人格的三重结构是弗洛伊德精神分析理论的核心心理动力框架,与意识的三层结构(意识 / 前意识 / 无意识)并非同一维度 —— 意识三层是从心理内容的感知可及性划分心理活动,而人格三重结构是从心理动力与行为驱动角度…

作者头像 李华