Tag
JavaScript
手写异步任务调度器(Async Scheduler)
手写异步任务调度器(Async Scheduler) 面试高频手写题。考察点:并发控制、Promise 链、队列调度思想。 🎯 题目要求实现一个 Scheduler 类,限制同时运行的异步任务最多为 N 个。超出的任务排队等候,前面的任务完成后自动拉取下一个执行。 123456789101112131415const scheduler = new Sch...
手写 Promise 四兄弟:all / race / any / allSettled
手写 Promise 四兄弟:all / race / any / allSettledPromise.all、Promise.race、Promise.any、Promise.allSettled 是异步编程里最常用的四个静态方法。它们语义相近、结构对称,理解一个就能推出其它三个。本文从语义出发,逐一手写实现,并把容易踩的坑(...
彻底搞懂 JavaScript 事件循环 (Event Loop) 机制
彻底搞懂 JavaScript 事件循环 (Event Loop) 机制💡 一、 为什么需要事件循环?(大前提)JavaScript 是一门**单线程(Single-Threaded)**语言。这意味着它在同一时间内只能做一件事。 如果遇到耗时任务(如请求网络接口、等待定时器),单线程如果傻等结果返回,整个网页就会卡死不动(无法点击、无法滚动)。为了解决这...
JavaScript Generator 深入解析
📚 什么是 Generator?Generator(生成器)是 ES6 引入的一种特殊函数,它可以暂停执行和恢复执行,是实现异步编程和迭代器的强大工具。 🔑 核心特点 可暂停:使用 yield 关键字暂停函数执行 可恢复:通过 next() 方法恢复执行 惰性求值:只在需要时才计算下一个值 双向通信:可以在暂停和恢复时传递数据 🎯 基础语法定义 Gen...
JavaScript 中的 8 种继承方式详解
📚 简介JavaScript 继承机制是前端开发中的核心概念。本文将详细介绍 8 种常见的继承方式,包括它们的优缺点和适用场景。 1️⃣ 原型链继承(Prototype Chain)特点 ✅ 优点:实现简单,可共享父类原型上的方法 ❌ 缺点:所有子实例共享引用类型属性,无法向父构造函数传参,无法实现多继承 🎯 适用场景:仅共享方法且没有引用类型状态时 代...