带有 #JS 的文章
Fri, August 9, 2024
4 min read
CMJ和ESM
CMJ和ESM 是JavaScript中两种不同的模块化标准。CommonJS(CMJ)是社区标准,主要在Node.js环境中使用,它使用函数实现模块化,支持动态依赖,并且依赖是同步执行的。而ES Module(ESM)是官方标准,使用新语法实现,支持所有环境,并且同时支持静态和动态依赖,其中动态依赖是异步执行的。
阅读更多 →
Tue, July 2, 2024
14 min read
什么是事件循环
事件循环是浏览器的核心原理。该片段会讲清楚事件循环的前因后果,帮助更好的理解事件循环。
Wed, August 7, 2024
7 min read
函数柯里化
函数柯里化是一种编程技巧,它允许将一个多参数函数转换成一系列单参数函数,从而实现参数的复用和延迟求值。本文通过示例代码,首先介绍了柯里化的基本过程,然后展示了其在实际开发中的应用,如参数复用在正则表达式校验函数中的优势。文章还提供了一个经典面试题,演示了如何实现一个能够接受不定数量参数的柯里化函数,并讨论了JavaScript中的toString方法和隐式类型转换的概念。
Sun, July 21, 2024
3 min read
使用Array.fill()初始化一个二维数组的小坑
在js中初始化一个二维数组嵌套两个new Array是不行的!通常使用new Array结合map或使用Array.form来初始化一个二维数组。
Fri, July 5, 2024
JS中的属性描述符
探索JS中属性描述符的奥秘,了解如何利用Object.defineProperty()和Object.getOwnPropertyDescriptor()来精准控制对象属性的行为。从属性的可写性、枚举性到配置性,再到getter和setter的巧妙应用,本文将带您熟悉这些高级特性,提升前端开发技能。
Thu, January 18, 2024
2 min read
异步emit
在编程中,特别是在涉及事件驱动或响应式编程的框架中,异步emit(即异步发送事件)是一种常见的模式。通过异步emit,事件的发送者和接收者之间不需要直接依赖。这有助于降低系统的耦合度,使得各个组件更容易维护和扩展。
Sat, August 3, 2024
6 min read
手写一个call方法
本文详细介绍了如何手动实现JavaScript中的call方法。call方法允许我们调用一个函数,并将this关键字的值设置为提供的值。文章通过文章开头的步骤展示了手写call方法的过程。文章还提到了使用Object.defineProperty来设置属性不可枚举,以避免在this枚举时出现意外属性。通过这些步骤,我们能够实现一个自定义的myCall方法,它能够正确地将函数调用的上下文设置为指定的对象,并执行函数。
Mon, July 29, 2024
控制并发数量
这篇文章教你如何控制请求并发的数量。例如有100个请求需要发送,如何控制只并行发送四个请求。
Wed, November 6, 2024
浏览器渲染原理
浏览器渲染原理涉及将HTML字符串转换成像素信息的一系列步骤。文章详细介绍了渲染流水线,包括解析HTML和CSS生成DOM树和CSSOM树、样式计算形成渲染树、布局/重排确定元素位置和尺寸、分层优化绘制效率、绘制/重绘生成绘制指令、分块并光栅化每个块,以及最终的绘制呈现。文章还探讨了Reflow和Repaint的概念,解释了为什么transform操作效率高,因为它只影响渲染流程的最后一个阶段,并且与渲染主线程的阻塞无关。