javascript
阿拉斯加的头头儿
这个作者很懒,什么都没留下…
展开
-
正则替换$1
在正则表达式替换中,$1 是一个捕获组的占位符,表示第一个捕获的子表达式。换句话说,$1 会被替换成匹配正则表达式中的第一个捕获组的内容。假设 year_name 为 “2020年”,那么生成的正则表达式为 /(2020年)/g。当 title 包含 “2020年” 时,正则表达式匹配到 “2020年”,并将其替换为。’ 表示将匹配的内容替换成带有红色样式的 span 标签,其中 $1 代表第一个捕获组的内容。假设你有一个日期字符串 “2024-10-24”,你想将其格式化为 “10/24/2024”。原创 2024-07-12 13:41:33 · 435 阅读 · 0 评论 -
图片预加载和懒加载原理和实现
【代码】图片预加载和懒加载原理和实现。原创 2023-10-20 14:28:43 · 160 阅读 · 0 评论 -
深拷贝如何解决循环嵌套问题 js
上述代码中使用了 WeakMap 来作为缓存,以避免循环引用导致的无限递归。WeakMap 可以存储对象键和值之间的关联关系,并且不会阻止对象被垃圾回收。在 JavaScript 中,处理循环嵌套结构的深拷贝时,需要注意解决循环引用导致的无限递归问题。原创 2023-08-07 11:40:44 · 498 阅读 · 0 评论 -
BroadcastChannel 如何使用
当你在分别的窗口或标签页中发送消息时,BroadcastChannel 会负责将消息传递给所有连接到相同频道的实例。这样,不同窗口之间就能够进行通信。’ 发送到所有连接到 ‘myChannel’ 频道的其他窗口或标签页。是一个用于在不同的浏览器窗口或标签页之间进行通信的接口。它允许你发送消息并在其他窗口或标签页上监听这些消息。这里创建了另一个 ‘myChannel’ 频道实例,并在收到消息时打印消息内容。首先,你需要在发送消息和接收消息的窗口或标签页中创建一个。在其他窗口或标签页中,你也需要创建相同的。原创 2023-07-19 10:31:37 · 826 阅读 · 0 评论 -
实现打字机的效果
元素,并向后端发起 text/event-stream 请求,建立与服务器的连接。随后,我们在前端监听 onmessage 事件,将服务器推送过来的数据流解析成一段段的文本,并逐步添加到上述。后端在接收到用户输入后,将其发送给AI模型进行处理,并将模型生成的文本逐步发送给前端。协议可以实现 chatGpt 打字机的效果,即实时展示AI回复的文本。在上述代码中,我们首先在前端页面中,创建了一个空的。对象,并将URL设置为与AI模型通信的端点。开头,并在每条消息之间添加换行符。元素中,模拟打字机的效果。原创 2023-06-12 17:07:10 · 607 阅读 · 0 评论 -
addEventListener 第三个参数
addEventListener 方法的第三个参数可以是一个布尔值、一个对象,或者是省略不填。原创 2023-04-22 14:42:28 · 2155 阅读 · 0 评论 -
手动实现 apply
创建唯一的符号属性 fn 并将当前函数赋值给该属性,以避免覆盖原对象的同名属性。如果未传入要绑定的 this 对象,则默认为全局对象 window。判断传入的参数是否为数组或类数组对象,如果不是则抛出错误。删除 context 对象上的 fn 属性并返回执行结果。判断当前函数是否为函数类型,如果不是则抛出错误。调用函数,得到函数执行后的返回结果。使用 context。原创 2023-04-20 08:59:27 · 151 阅读 · 0 评论 -
fetch 如何中断请求
中断一个 fetch 请求可以使用AbortController实现。在执行fetch请求时,可以通过AbortController创建一个信号对象signal,然后将signal作为配置选项传递给fetch()方法,这样就可以在需要中止fetch请求时通过调用AbortController对象的abort()方法来中止请求。然后,在 fetch 请求时将 signal 作为配置选项传递给 fetch 方法。最后,当需要中止 fetch 请求时,调用 controller.abort() 方法即可。原创 2023-04-19 14:54:50 · 1177 阅读 · 0 评论 -
手写实现 promise
需要注意的是,在实现中使用了数组来保存每个回调函数,因为 Promise 可能会存在多个 then 方法,当状态改变时需要执行所有的回调函数,而保存回调函数的数组也是实现 Promise 链式调用的关键。此外,这个实现还加入了 catch 和 finally 方法,用于捕获 Promise 的错误和添加无论 Promise 状态如何都会执行的逻辑。Promise 是 JavaScript 中用于处理异步操作的对象,我们可以手写实现一个符合 Promise A+ 规范的 Promise。原创 2023-04-12 17:45:36 · 800 阅读 · 1 评论 -
手动实现promise.all
用于存储每个 Promise 对象解决后的结果和已经解决的 Promise 数量。函数的解决值(resolved value)。对象的拒绝值(rejected value)。对象被拒绝(rejected),则整个。对象被解决后,它的返回值会被保存到。在上面的代码中,我们创建了一个名为。对象数组作为参数,并返回一个新的。函数中,我们首先定义了一个空数组。在上面的代码中,我们使用了一个。对象都有不同的超时时间。函数会将拒绝值作为其返回的。对象,最终输出结果为。对象的结果组成的数组。原创 2023-04-12 15:13:17 · 721 阅读 · 0 评论