随笔分类 -  手写原理代码

摘要:在 TypeScript 中实现 required、returnTypes、Partial、readOnly 等功能可以帮助开发者更加方便地处理数据类型,减少在代码中出现的错误,提高代码的可维护性和健壮性 1、实现 required 使可选属性变为必填属性 type MyRequired<T> = 阅读全文
posted @ 2023-04-12 15:57 caix-1987 阅读(94) 评论(0) 推荐(0) 编辑
摘要:当使用 JavaScript 进行异步编程时,我们往往需要面对回调地狱(callback hell)、代码可读性低、错误处理困难等问题。为了解决这些问题,ECMAScript 6(ES6)中引入了 Promise。 Promise 是一种用于处理异步操作的对象,它是一个容器,保存着未来才会结束的事件 阅读全文
posted @ 2023-04-12 12:04 caix-1987 阅读(18) 评论(0) 推荐(0) 编辑
摘要:实现并发控制请求函数 /** * 并发控制请求函数 * @param {Array} urls 请求的 URL 数组 * @param {Number} max 最大并发数 * @param {Function} callback 请求成功回调函数 */ async function concurr 阅读全文
posted @ 2023-04-12 12:03 caix-1987 阅读(82) 评论(0) 推荐(0) 编辑
摘要:javaScript 中的订阅发布模式(也称为观察者模式)是一种设计模式,用于在对象之间的事件通信中。 该模式由两部分构成:发布者和订阅者。发布者持有所有订阅者的引用,在某个事件发生时通知所有的订阅者,从而触发它们的相应行为。 这种模式可以用于解耦发布者和订阅者之间的依赖关系,从而实现更加灵活的设计 阅读全文
posted @ 2023-04-12 11:45 caix-1987 阅读(13) 评论(0) 推荐(0) 编辑
摘要:数据的双向绑定是一种设计模式,可以将一个数据模型(Model)和视图组件(View)之间的数据同步自动化。在该设计模式中,当视图层的某个数据发生变化时,它会自动更新数据模型,而当数据模型的某个数据发生变化时,它也会自动更新视图层,从而保持数据和视图之间的同步。 在实现数据的双向绑定时,我们通常使用的 阅读全文
posted @ 2023-04-12 11:45 caix-1987 阅读(212) 评论(0) 推荐(0) 编辑
摘要:1、forEach Array.prototype.my_forEach = function (callback) { for (let i = 0; i < this.length; i++) { callback(this[i], i, this); } }; 2、map Array.prot 阅读全文
posted @ 2023-04-11 23:12 caix-1987 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1、Object.assign(target, ...sources) Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象中。它只复制源对象自身可枚举的属性,同时也能够拷贝 getter 和 setter 函数 2、Object.create(proto[, proper 阅读全文
posted @ 2023-04-11 23:11 caix-1987 阅读(58) 评论(0) 推荐(0) 编辑
摘要:在 JavaScript 中,对象拷贝可以分为浅拷贝和深拷贝两种方式 1、浅拷贝 浅拷贝只是复制了对象的引用地址,新对象的属性与原对象的属性指向同一块内存地址 2、深拷贝 深拷贝会完整地复制对象以及其内部所有嵌套对象 使用 JSON.parse(JSON.stringify()) 方法进行深拷贝时, 阅读全文
posted @ 2023-04-11 23:11 caix-1987 阅读(23) 评论(0) 推荐(0) 编辑
摘要:AJAX 是 Asynchronous JavaScript and XML 的缩写,指的是通过 JavaScript 和 XML 技术在不重新加载整个页面的情况下,实现与服务器之间异步通信的技术。使用 AJAX 技术能够使网页更加动态和用户友好。 JavaScript 的 AJAX 技术借助于浏览 阅读全文
posted @ 2023-04-11 23:10 caix-1987 阅读(20) 评论(0) 推荐(0) 编辑
摘要:在 JavaScript 中,new 关键字用于创建一个对象实例,它通常与构造函数一起使用。当使用 new 关键字时,会发生以下几件事情: 1、创建一个新对象,并将该对象的属性设置为构造函数的原型(即 __proto__) 2、将构造函数的作用域绑定到新对象上,并执行构造函数中的代码 3、如果构造函 阅读全文
posted @ 2023-04-11 23:09 caix-1987 阅读(50) 评论(0) 推荐(0) 编辑
摘要:JavaScript 中的 Compose 函数用于组合一些函数,使得每个函数都接收上一个函数的返回值作为参数,并返回一个新的函数。可以使用这种方式把多个函数串起来,从而实现更复杂的逻辑 Comopse 函数是一个非常有用的工具,它可以帮助我们简化程序逻辑,实现代码复用,提高开发效率 实现 comp 阅读全文
posted @ 2023-04-11 23:09 caix-1987 阅读(35) 评论(0) 推荐(0) 编辑
摘要:函数柯里化是一种将多个参数的函数转换为接受一个单一参数(最初函数的第一个参数)的函数的技术,并返回一个新函数的过程。这个新函数接受余下的参数,并返回最终结果。因此,函数柯里化可以让函数变得更加复杂,同时也提高了函数的可复用性和普适性 具体来说,函数柯里化把一个 n 个参数的函数 f(x1, x2, 阅读全文
posted @ 2023-04-11 23:08 caix-1987 阅读(26) 评论(0) 推荐(0) 编辑
摘要:函数防抖和函数节流都是优化高频事件处理的JavaScript技术。它们可以限制函数的调用,在一定程度上减少计算、网络请求和提高响应速度,但它们的实现方式略有不同 函数防抖:延迟执行函数,只有在事件停止后才会执行最后一次事件 函数节流:定期执行函数,每隔一段时间执行一次 通常情况下,函数节流适用于需要 阅读全文
posted @ 2023-04-11 23:07 caix-1987 阅读(13) 评论(0) 推荐(0) 编辑
摘要:apply, call 和 bind 都是 JavaScript 中用于控制函数调用时 this 关键字指向的工具。它们可以将需要执行的函数和需要绑定的作用域传入,以便在调用时确保正确的上下文 apply 和 call 传递的参数列表有所不同。apply 接受的参数是一个数组,而 call 接受的是 阅读全文
posted @ 2023-04-11 23:07 caix-1987 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示