发布订阅模式

文章深入探讨了发布订阅模式(观察者模式)的核心组件与实现细节,通过 ES6 语法逐步构建了一个支持取消订阅和先发布后订阅功能的 JavaScript 实例,并优化了命名空间管理,适用于松耦合的架构设计。

单例模式

探讨单例模式在JavaScript中的实现,从闭包和代理模式入手,分析如何分离创建与单例保证的职责,并延伸到惰性加载、函数重写及ES6模块机制的应用,为构建高效、可维护的前端架构提供实践参考。

无效的height100%?

文章探讨了 CSS 中 `height: 100%` 属性无效的常见问题,分析了其生效条件:父级明确高度或使用绝对定位。通过对比 `box-sizing` 和盒子模型,揭示了两种方式在计算高度时的差异,并提供了实际示例说明绝对定位如何实现自适应布局。

理解原型和原型链

深入解析JavaScript原型与原型链,涵盖prototype、__proto__、constructor核心概念,解释对象创建步骤、原型链查找机制及Function对象的特殊性。

相等运算符比较

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

变量提升

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

使用rollup编写现代化模块

本文通过一个具体示例,演示了如何使用 Rollup 构建一个现代化的 JavaScript 模块,涵盖 ES 和 UMD 格式输出、Babel 集成以支持 ES5 和 TypeScript,以及通过插件优化构建流程。

函数节流

文章基于 underscore 的实现思路,探讨了函数节流的两种核心机制:定时器和时间戳,并整合成一个支持初始执行和尾部执行选项的健壮实现,同时处理了边界条件如系统时间更改。

函数防抖

从基础实现到处理 this 指向、参数传递、立即执行和取消功能,本文逐步构建一个完善的防抖函数,深入分析其内部机制与边界情况。

漫谈ECMAScript有意思的设计

文章从《你所不知道的 JavaScript》出发,探讨了 ECMAScript 中块级作用域的实现机制,包括 ES6 之前使用立即执行函数和 try-catch 的模拟方式,以及 Babel 如何通过作用域转换来支持 ES5 环境。同时,分析了浏览器环境中 global 对象的特殊行为,如未声明变量和 DOM id 的隐式映射。