ECMAScript 2024
JavaScript 版本号
早期的 ECMAScript 版本以数字命名:ES5 和 ES6。
从 2016 年开始,版本以年份命名:ES2016、2018、2020...
第 15 版,ECMAScript 2024,于 2024 年 7 月发布。
ES2024 中的新特性
- Object.groupBy()
- Map.groupBy()
- Temporal.PlainDate()
- Temporal.PlainTime()
- Temporal.PlainMonthDay()
- Temporal.PlainYearMonth()
警告
这些功能相对较新。
较旧的浏览器可能需要替代代码(Polyfill)。
JavaScript Object.groupBy()
实例
// 创建一个数组 const fruits = [ {name:"apples", quantity:300}, {name:"bananas", quantity:500}, {name:"oranges", quantity:200}, {name:"kiwi", quantity:150} ]; // 用于分组元素的回调函数 function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // 按数量分组 const result = Object.groupBy(fruits, myCallback);
描述
Object.groupBy()
方法根据回调函数返回的字符串值对对象的元素进行分组。
Object.groupBy()
方法不会改变原始对象。
注意:
原始对象和返回对象中的元素是相同的。
对原始对象或返回对象的更改将同时反映在两者中。
JavaScript Map.groupBy()
实例
// 创建一个数组 const fruits = [ {name:"apples", quantity:300}, {name:"bananas", quantity:500}, {name:"oranges", quantity:200}, {name:"kiwi", quantity:150} ]; // 用于分组元素的回调函数 function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // 按数量分组 const result = Map.groupBy(fruits, myCallback);
描述
Map.groupBy()
方法根据回调函数返回的字符串值对对象的元素进行分组。
Map.groupBy()
方法不会改变原始对象。
注意:
原始对象和返回对象中的元素是相同的。
对原始对象或返回对象的更改将同时反映在两者中。
Object.groupBy() vs Map.groupBy()
Object.groupBy()
和 Map.groupBy()
的区别是:
Object.groupBy()
将元素分组到一个 JavaScript 对象中。
Map.groupBy()
将元素分组到一个 Map 对象中。
JavaScript Temporal.PlainDate()
实例
const date = Temporal.PlainDate(2024, 5, 1);
JavaScript Temporal.PlainTime()
实例
const date = new Temporal.PlainTime(10, 30);
JavaScript Temporal.PlainMonthDay()
实例
const date = new Temporal.PlainMonthDay(5, 1);
JavaScript Temporal.PlainYearMonth()
实例
const date = new Temporal.PlainYearMonth(2024, 5);