
js手写题
jjjjjjjjj¢
你好鸭
展开
-
手写发布订阅模式
/ 返回取消订阅的函数。// 将订阅者(回调函数)添加到事件的订阅者列表。如果需要支持一次性事件(例如订阅者只想接收一次事件),可以实现一个 once 方法,订阅后自动取消订阅。订阅(subscribe):用户订阅特定的事件,当该事件触发时,执行与事件关联的回调函数。发布(publish):当某个事件发生时,发布该事件,并通知所有订阅了该事件的回调函数。该实现提供了一个简单的发布订阅系统,支持事件的订阅、取消订阅和发布。// 取消登录事件的订阅。返回一个取消订阅的函数,方便用户手动移除某个事件的订阅。原创 2025-03-18 23:19:21 · 733 阅读 · 0 评论 -
交换a,b的值,不能用临时变量
交换a,b的值,不能用临时变量。原创 2024-04-03 22:15:35 · 213 阅读 · 0 评论 -
排序方法实现
【代码】排序方法实现。原创 2023-09-08 12:56:17 · 86 阅读 · 0 评论 -
判断对象是否存在循环引用
【代码】判断对象是否存在循环引用。原创 2024-03-03 19:12:54 · 510 阅读 · 0 评论 -
promise实现图片异步加载
【代码】promise实现图片异步加载。原创 2024-03-03 19:10:39 · 477 阅读 · 0 评论 -
图片懒加载的几种方法
【代码】图片懒加载的几种方法。原创 2024-03-03 19:09:53 · 405 阅读 · 0 评论 -
实现对象数组属性排序
【代码】实现对象数组属性排序。原创 2024-03-03 19:05:42 · 360 阅读 · 0 评论 -
数组交集并集差集
【代码】数组交集并集差集。原创 2024-03-03 19:05:04 · 347 阅读 · 0 评论 -
实现日期格式化函数
【代码】实现日期格式化函数。原创 2024-03-03 18:45:09 · 372 阅读 · 0 评论 -
实现apply call bind
【代码】实现apply call bind。原创 2024-03-03 18:23:00 · 383 阅读 · 0 评论 -
防抖 节流
设置clearTimeout为什么还要timer=null 设置延时器之前先清除下延时器,不然每次事件触发都会多一个延时器,延时器之间互相干扰,造成紊乱。立即执行:即多次触发事件,第一次会立即执行函数,之后在设定wait事件内触犯的事件无效,不会执行。非立即执行函数: 多次触发事件,只会在最后一次触发事件后等待设定的wait时间结束时执行一次。立即节流 连续点击的话,第一下点击会立即执行一次 然后每过 wait 秒执行一次。非立即节流 连续点击的话,每过 wait 秒执行一次。原创 2024-03-03 17:45:29 · 381 阅读 · 0 评论 -
实现数组方法 forEach map filter every
手写filter方法。原创 2024-03-03 17:22:35 · 362 阅读 · 0 评论 -
实现对数组里面对象属性去重
【代码】实现对数组里面对象属性去重。原创 2024-03-02 01:08:13 · 390 阅读 · 0 评论 -
手写单例模式
单例模式是一种常用的模式,有些对象往往只需要一个,比如:线程池、全局缓存、浏览器中的 window 对象等。在 Javascript 开发中,单例模式的用途同样非常广泛,比如做登录弹框,它在当前页面是唯一的,无论单击多少次,都只会创建一次,这就非常适合用单例模式来创建。“代理版”单例模式:遵循单一原则,创建对象的类和保证单例的类分开定义。定义:保证一个类仅有一个实例对象,并提供一个访问它的全局访问点。二、JS手写实现单例模式。原创 2023-10-31 15:39:24 · 200 阅读 · 0 评论 -
实现数组的扁平化
【代码】实现数组的扁平化。原创 2023-10-16 12:30:41 · 191 阅读 · 0 评论 -
手写单例模式
而如果,还没有实例化的时候,多个线程进去了,也没有事,因为里面的方法有锁,只会让一个线程进入最内层方法并实例化实例。因为,即使实例已经实例化了,既后续不会再出现线程安全问题了,但是锁还在,每次还是只能拿到锁的线程进入该方法,会使线程阻塞,等待时间过长。说明: 先不管需不需要使用这个实例,直接先实例化好实例 (饿死鬼一样,所以称为饿汉式),然后当需要使用的时候,直接调方法就可以使用了。这样做的好处是:有些实例,全局只需要一个就够了,使用单例模式就可以避免一个全局使用的类,频繁的创建与销毁,耗费系统资源。原创 2023-10-14 23:26:21 · 506 阅读 · 0 评论 -
异步任务调度器
【代码】异步任务调度器。原创 2023-10-11 15:10:54 · 83 阅读 · 0 评论 -
实现并发控制
【代码】实现并发控制。原创 2023-10-04 16:36:34 · 66 阅读 · 0 评论 -
手写实现Array.some
【代码】手写实现Array.some。原创 2023-09-25 14:33:11 · 59 阅读 · 0 评论 -
一次性插入一千个 <li>元素到一个 <ul>标签中
1.使用文档片段(Document Fragment):文档片段是一种轻量级的临时容器,可以将多个元素附加到其中,然后再一次性将文档片段中的内容插入到HTML文档中。这样可以减少对DOM的操作次数,提高性能。2.使用innerHTML:使用innerHTML可以直接将HTML字符串插入到元素中,这种方法简洁明了,但需要注意在使用时确保HTML字符串的安全性。原创 2023-09-24 20:03:16 · 325 阅读 · 0 评论 -
驼峰命名转换
【代码】驼峰命名转换。原创 2023-08-18 18:26:26 · 112 阅读 · 0 评论 -
实现AJAX请求
【代码】实现AJAX请求。原创 2023-09-21 18:57:42 · 70 阅读 · 0 评论 -
创建对象方式
【代码】创建对象方式。原创 2023-09-16 00:38:09 · 56 阅读 · 0 评论 -
手写类型判断函数
【代码】手写类型判断函数。原创 2023-09-14 01:04:13 · 70 阅读 · 0 评论 -
js继承实现方式
函数实现了将子类的原型对象设置为父类的实例,并修正子类的构造函数引用。这样子类既能够继承父类的原型方法,又能够通过自身的构造函数进行属性的初始化。寄生组合式继承是一种优化过的继承方式,结合了原型链继承和借用构造函数继承的优点。它避免了父类构造函数被调用两次的问题,同时能实现正确的原型链继承。寄生组合式继承是目前广泛应用的一种继承方式,它兼具了性能和灵活性,并且能够避免原型链继承和构造函数继承的缺点。当涉及到 JavaScript 的继承时,有多种实现方式。原创 2023-09-14 00:42:36 · 113 阅读 · 0 评论 -
手写观察者模式
【代码】手写观察者模式。原创 2023-09-14 00:38:44 · 110 阅读 · 0 评论 -
实现一个 sleep 函数
【代码】实现一个 sleep 函数。原创 2023-09-06 11:25:23 · 73 阅读 · 0 评论 -
手写深度比较 isEqual
【代码】手写深度比较 isEqual。原创 2023-09-14 00:30:14 · 63 阅读 · 0 评论 -
实现轮播图
【代码】实现轮播图。原创 2023-09-13 21:39:21 · 55 阅读 · 0 评论 -
实现jsonp
【代码】实现jsonp。原创 2023-09-09 21:50:44 · 51 阅读 · 0 评论 -
对象扁平化
【代码】对象扁平化。原创 2023-09-08 15:36:49 · 66 阅读 · 0 评论 -
手写reduce
【代码】手写reduce。原创 2023-08-20 01:27:00 · 60 阅读 · 0 评论 -
实现大整数相加相乘
【代码】实现非负大整数相加。原创 2023-09-07 23:48:32 · 120 阅读 · 0 评论 -
使用for of遍历对象
【代码】使用for of遍历对象。原创 2023-09-07 14:44:41 · 89 阅读 · 0 评论 -
手写发布订阅者模式
【代码】手写发布订阅者模式。原创 2023-09-06 23:50:00 · 102 阅读 · 0 评论 -
实现reduce方法
Js原创 2023-03-23 01:23:39 · 342 阅读 · 0 评论 -
手写promiseAll allsettled race finally any resolve reject
Js原创 2023-03-19 00:18:30 · 125 阅读 · 0 评论 -
实现数组去重
【代码】实现数组去重。原创 2023-03-17 15:21:21 · 145 阅读 · 0 评论 -
手写 instanceof 方法
Js原创 2023-02-26 23:14:01 · 207 阅读 · 0 评论 -
实现每隔一秒打印 1,2,3,4
Js原创 2023-02-26 11:28:34 · 408 阅读 · 0 评论