Skip to content

JavaScript 核心高频(重中之重)

适用:掌握 HTML/CSS/JS 的前端求职人员。答案待逐步补全。

1. 基础语法与数据类型

JS有哪些原始数据类型和引用数据类型?

typeof、instanceof、Object.prototype.toString.call 的区别和使用场景?

null 和 undefined 的区别?

0、''、null、undefined、NaN 的布尔转换结果?

什么是隐式类型转换?常见场景有哪些?

2. 作用域、闭包与 this

什么是执行上下文、作用域、作用域链?

什么是闭包?闭包的作用、优缺点和使用场景?

普通函数和箭头函数的 this 指向区别?

call、apply、bind 的区别?各自使用场景?

手写实现简易 call、apply、bind 方法

3. 原型与原型链

什么是原型、原型对象、原型链?

instanceof 的底层实现原理?

JS 如何实现继承?列举常用继承方式

new 关键字的执行过程?

手写实现 new 操作符

4. 异步与事件循环(超高频)

同步和异步的区别?为什么需要异步?

宏任务和微任务有哪些?执行优先级是什么?

简述浏览器 EventLoop 执行流程

Node 端 EventLoop 和浏览器 EventLoop 的区别?

Promise 的状态、核心特点、常用 API 有哪些?

Promise.all、Promise.race、Promise.allSettled 的区别和使用场景?

async/await 的原理和优缺点?

async/await 如何捕获异常?

手写简易版 Promise 核心逻辑

5. 常用手写工具方法(面试必考)

手写防抖函数、节流函数,并说明两者区别和使用场景

手写浅拷贝、深拷贝(基础版)

手写数组去重(多种方式)

手写数组 reduce 求和、遍历

实现数组 flat 扁平化方法