《我与地坛》经典语录
《我与地坛》是一位身残者在一座废弃的古园中对自己所见到的人生百态所发出的感悟、思索。作者以地坛作为寄托自己情感与发泄情感的地方,同时也是思考人生的佳境。这一篇是史铁生先生创作的经典作品,一直在感动很多人,其中也有很多经典的句子,此处摘选了100条经典语录。
git知识点总结
这篇博客深入探讨了Git版本控制系统的核心基础和进阶概念,为读者提供了全面的指导。对于想要深入了解Git的开发人员和项目经理来说,这篇博客将是一份宝贵的学习资源。
mysql知识点总结
这段内容涵盖了MySQL数据库的基础和进阶知识,从终端连接数据库、SQL语句分类到数据库和数据表的操作等,系统地介绍了MySQL的操作要点。
TypeScript知识点总结
通过这篇博客,你将深入了解 TypeScript 的核心概念,掌握如何使用类型、接口、类等特性来构建更加健壮和可维护的应用程序。无论是前端还是后端开发,TypeScript都能够为你的项目带来更多的安全性和可靠性。
使用Alist与Lsky搭建图床
本文介绍了如何使用Alist、Lsky和阿里云盘搭建图床。首先,安装Alist并添加阿里云盘Open作为存储驱动。然后,安装Lsky Pro并使用Docker运行。接着,配置Nginx的location块,将请求转发到Alist地址。最后,在Alist中创建WebDav存储策略,设置相关参数,包括访问域名、连接地址、认证方式等。完成以上步骤后,即可成功搭建图床。
Promises/A+规范的实现
本文主要介绍了如何实现一个符合Promises/A+规范的HYPromise类。首先,定义了HYPromise类的基本结构,包括状态、值和原因属性,以及成功和失败的处理函数队列。接着,实现了构造函数和resolve、reject方法,并在执行器函数中调用它们。然后,实现了then方法,用于注册成功和失败的处理函数,并返回一个新的Promise实例。为了符合Promises/A+规范,还实现了一个名为resolvePromise的辅助函数,用于处理新Promise实例及其处理函数的结果。最后,对构造函数中的异常处理进行了优化。通过以上步骤,实现了一个功能完善、遵循Promises/A+规范的HYPromise类。此外,作者还介绍了如何实现`allSettled`和`any`静态方法,并通过Promises/A+的测试来验证实现的正确性。
Promise用法的详细解析
本文深入探讨了JavaScript中的Promise对象及其用法。Promise是一种用于处理异步操作的机制,具有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。通过executor函数创建Promise,该函数会立即执行并传入resolve和reject回调。当调用resolve时,Promise变为fulfilled;调用reject时,变为rejected。Promise上的then方法可以接受两个回调,分别处理fulfilled和rejected状态。如果返回新的Promise,新Promise的状态决定原Promise的状态。此外,then方法本身也返回一个新的Promise,实现链式调用。文章还介绍了Promise.resolve和Promise.reject静态方法,以及Promise.all、Promise.allSettled、Promise.race和Promise.any类方法。特别地,`Promise.any()`接收一个Promise数组作为参数,当数组中的任何一个Promise被resolve时,返回那个resolved的Promise的结果;如果所有Promise都被reject,则返回第一个被reject的Promise的错误信息。但需注意,如果所有Promise都是reject的,会报AggregateError错误。因此,使用`Promise.any()`时要确保至少有一个Promise是resolve的。
JavaScript的Proxy-Reflect和响应式原理
本文介绍了 JavaScript 中的 Proxy 和 Reflect,它们都是用于创建代理对象的工具。通过使用这些工具,可以更加灵活地处理对象的操作和属性设置。同时,还讲解了响应式的概念和实现方式,并提出了使用 WeakMap 来管理依赖关系的方法。最后,给出了一个 getDepend 函数的示例,用于管理不同对象的不同依赖关系。本文介绍了如何使用 Proxy 和 Reflect 实现响应式原理。
JavaScript的ES7~ES13知识点
本文介绍了JavaScript的ES6~ES13中的一些核心概念和语法特性,包括Symbol、Set、Map、Custom Set、Custom Map、nullish coalescing Operator、可选链、globalThis等知识点。同时还介绍了ES Module模块化中的相关内容。文章通过示例展示了如何使用`FinalizationRegistry`监听对象销毁,以及如何使用`WeakRef`创建弱引用。最后提到了逻辑或运算符、逻辑与操作符、逻辑空运算符的用法,以及ES2021中新增的常量字面量语法特性。
JavaScript的ES6~ES13的Symbol、Set、Map
本文介绍了JavaScript中的ES6~ES13新特性,包括Symbol、Set和Map。Symbol用于生成独一无二的值,Set和Map是新的数据结构,可以保存不重复的数据和映射关系。文章还详细介绍了Map和WeakMap的特点和常用方法,其中WeakMap常用于收集响应式对象的依赖关系。需要注意的是,WeakMap不能遍历且不支持forEach方法。