- 发布时间及相关标签:2025 年 06 月 04 日发布,包含标签 #web、 #javascript、 #ecmascript。
- 图片:

JavaScript 新特性介绍:
- Iterator helpers:引入用于迭代器的方法,如
[Iterator.prototype.drop()]、[Iterator.prototype.take()]等,可更高效地处理数组转换,避免创建临时数组,常见创建可迭代对象的方式有[Iterator.from()]和values()方法等,如arr.values().drop(10).take(10).filter(el => el < 10).map(el => el + 5).toArray()更高效。需注意 Safari 从 2025 年 03 月 31 日开始支持该特性,最好等待数月。 - Array at() method:
[Array.prototype.at()]可替代访问第 n 个元素的方式,支持负索引,如[10,20,30].at(-1)返回 30,比之前写arr[arr.length - 1]更简洁。 - Promise.withResolvers():取代之前创建 Promise 解析器的繁琐代码,如
const { promise, resolve, reject } = Promise.withResolvers();更方便。 - String.prototype.replace() / String.prototype.replaceAll() callback:可在
String.prototype.replace()或String.prototype.replaceAll()的第二个参数中传递回调函数,替换字符串为回调函数返回的值,如let counter = 0; console.log("NUMBER, NUMBER, NUMBER".replaceAll("NUMBER", (match) => match + "=" + (++counter))),性能和内存效率高。 - Swapping variables:替代传统交换变量的方式,如
let a = 1, b = 2; [a, b] = [b, a];更简洁。 - structuredClone():浏览器支持的用于深度复制对象的函数,比
JSON.stringify()和JSON.parse()更合适,可处理NaN、undefined、循环引用等问题,如const obj = {}; obj.selfReference = obj; const clonedObj = structuredClone(obj);。 - Tagged templates:允许通过函数解析模板字面量,第一个参数为字符串数组,其余为表达式,可用于自动转换插值值,如
function escapeHtml(strings,...args) { …… } console.log(escapeHtml
${'
'});。 - WeakMap / WeakSet:类似于
Map和Set,但键不允许为基本类型且缺少迭代器,当键失去所有引用时可被垃圾回收,如const set = new WeakSet(); const map = new WeakMap();。 - Set operations:新增支持
Set对象的布尔操作,如[Set.prototype.difference()]、[Set.prototype.intersection()]等,可进行集合的差集、交集等操作,如const set1 = new Set([1,2,3,4]); const set2 = new Set([3,4,5,6]); console.log(set1.difference(set2));等。
- Iterator helpers:引入用于迭代器的方法,如
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。