返回分类列表

深入系列

共 12 篇文章

判断对象全等

针对 JavaScript 中对象全等判断的局限性,本文通过逐步实现一个 `equal` 函数,探讨了处理 NaN、+0/-0、数组、对象、Set、Map、Date、正则表达式和包装对象的深层比较逻辑,并解释了如何利用构造函数、迭代器和值比较来构建健壮的解决方案。

函数记忆

探讨函数记忆化(Memoization)的核心实现,从同步场景出发,通过重构缓存逻辑来分离计算与缓存职责,并扩展到异步场景,包括回调函数和 Promise 的并发处理与队列管理。

深浅拷贝和extend

文章从基础工具函数入手,逐步实现浅拷贝、深拷贝和对象合并(extend)的JavaScript函数,探讨了递归、WeakMap处理循环引用以及JSON方法的局限性。

模拟实现new

文章通过一个具体示例,解析了JavaScript中new运算符的底层执行步骤,并提供了一个模拟实现函数,探讨了原型链设置和构造函数返回值处理等核心机制。

模拟实现bind

本文逐步剖析了 JavaScript 中 bind 方法的模拟实现,从基础参数处理到构造函数场景下的 this 绑定和原型链继承,最终提供了一个兼容性优化的完整实现方案。

通用迭代器实现

本文探讨了在 JavaScript 中实现一个通用的 each 函数,详细解析了如何通过 Object.prototype.toString 进行类型判断,并设计 isClassArray 函数来区分数组、类数组和对象,以支持不同的迭代策略和回调处理。

理解原型和原型链

本文解析 JavaScript 中对象与函数的创建机制,通过构造函数、prototype 属性和 __proto__ 链接,探讨原型链如何实现属性查找和继承,并涉及 Function 与 Object 的特殊关系。

相等运算符比较

文章深入解析了 JavaScript 中相等运算符的隐式转换机制,包括数值、字符串、布尔型、undefined、null 和对象的比较规则,并通过实战案例揭示了常见陷阱,如数组和空格的转换问题,旨在帮助开发者理解底层行为以避免错误。

变量提升

文章探讨了 JavaScript 中的变量提升机制,通过伪代码和示例详细解释了函数参数、函数声明和变量声明的优先级关系,以及执行上下文中的初始化与赋值阶段。