老乡,别走!Javascript隐藏功能你知道吗?

先给前端佬透露,Javascript是最好的语言!有数据为证!

哈哈!来自stackoverflow认证!

言归正传,今天来一些,关于Javascript奇奇怪怪的东西!可能大部分前端佬没有注意,但有些东西用着还挺爽的!

1、FinalizationRegistry

概述

这个是2021年引入的,作用就是当某一个对象被监控后,如果这个对象被垃圾回收机制清理后,就会触发。

这个呢,用来手动释放一些知道不再使用的对象的内存,就很棒呐!或者反过来使用,用来监控某一个对象是否被垃圾回收。

具体使用办法,哥几个还是去[MDN](MDN Web Docs)上找找。不举例了哈,后面也是。

兼容性

2、MutationObserver

概述

曾经的前端佬你,有没有想过做一件事情。比如做一个埋点的系统,怎么能埋一个异步的广告图片的点击量?

如果有这个需求的话,曾经的前端佬你,是不是用的就是setInterval?

当然了,还有更牛逼的前端佬用的是Mutation Events。

现在看到这里的前端佬你,可以自豪的说,用这个API就可以了。

它是在DOM之上实现的,能完美的监控到DOM树的增删改!!!

兼容性

3、structuredClone

概述

深度复制一个新的API,它能拷贝的范围很大,几乎涵盖常用的内置对象,如下:

  • 基本类型(number, string, boolean, null, undefined, BigInt, Symbol)
  • 普通对象、数组
  • Date
  • RegExp
  • Map / Set
  • ArrayBuffer, TypedArray, DataView Blob, File, FileList
  • ImageBitmap, OffscreenCanvas

可惜了,几乎俩字几乎要跟它一辈子。比如Function、Error、DOM节点等,还不能支持。

但他有一个很棒的功能,转移对象。

那么使用场景是啥呢?比如一些对象,复制代价很大。比如你定义的vue组件中,有些props数据中的对象中包含vue组件的。那子组件,如果不想造成父组件一改变数据就影响到子组件的数据,就会采取复制一份。这个时候就可以用到这个转移对象了。

转移之后,原有的对象会被清空。

兼容性

4、IntersectionObserver

概述

这玩意,也是绝了。

通俗点来说,是可以用来监控一个元素是否进入/离开可视区域。比如懒加载那功能,图片是否进入可视区域就可以用这个实现。

但远远不止这样,我们可以看看MDN上咋解释:

IntersectionObserver 接口(从属于 Intersection Observer API)提供了一种异步观察目标元素与其祖先元素或顶级文档视口(viewport)交叉状态的方法。其祖先元素或视口被称为根(root)。

当一个 IntersectionObserver 对象被创建时,其被配置为监听根中一段给定比例的可见区域。一旦 IntersectionObserver 被创建,则无法更改其配置,所以一个给定的观察者对象只能用来监听可见区域的特定变化值;然而,你可以在同一个观察者对象中配置监听多个目标元素。

懒加载之类的优化就不说了,比如埋点中,统计某一个广告的曝光时间,是不是用这个也挺爽的?

兼容性

5、BroadcastChannel

概述

这个呢?我们回忆一下之前有一个特效,"量子纠缠"的那个效果。

炫酷吧!

像这样的,各个tab的交互数据,就是通过BroadcastChannel来完成的。

BroadcastChannel的主要功能,就是它允许同源的不同浏览器窗口、标签页、frame 或者 iframe 下的不同文档之间相互通信。

使用场景的话,有待各个前端佬开发了。

兼容性

差不多这样吧,写的很多了。

如果这种有前端佬希望的话,下次再整整别的。

相关推荐
Zuckjet_1 小时前
开启 3D 之旅 - 你的第一个 WebGL 三角形
前端·javascript·3d·webgl
2401_863801461 小时前
探索 12 种 3D 文件格式:综合指南
前端·3d
珍宝商店3 小时前
前端老旧项目全面性能优化指南与面试攻略
前端·面试·性能优化
bitbitDown3 小时前
四年前端分享给你的高效开发工具库
前端·javascript·vue.js
YAY_tyy3 小时前
【JavaScript 性能优化实战】第六篇:性能监控与自动化优化
javascript·性能优化·自动化
gnip4 小时前
实现AI对话光标跟随效果
前端·javascript
脑花儿5 小时前
ABAP SMW0下载Excel模板并填充&&剪切板方式粘贴
java·前端·数据库
闭着眼睛学算法5 小时前
【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
java·c语言·javascript·c++·python·算法·华为od
烛阴5 小时前
【TS 设计模式完全指南】构建你的专属“通知中心”:深入观察者模式
javascript·设计模式·typescript
lumi.6 小时前
Vue.js 从入门到实践1:环境搭建、数据绑定与条件渲染
前端·javascript·vue.js